[packages/ufraw] - added buld fix patchset from fedora - rel 9
baggins
baggins at pld-linux.org
Sun Oct 1 17:28:28 CEST 2017
commit 66fdc3c68f2164557002aab359174a5bdb8112ee
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Oct 1 17:27:56 2017 +0200
- added buld fix patchset from fedora
- rel 9
05_fix_build_due_to_unsigned_char.patch | 14 +
ufraw-find_green.patch | 28 ++
ufraw-lf-destroy.patch | 15 +
ufraw-multipliers.patch | 503 ++++++++++++++++++++++++++++++++
ufraw.spec | 10 +-
5 files changed, 569 insertions(+), 1 deletion(-)
---
diff --git a/ufraw.spec b/ufraw.spec
index dd4a5e1..868a250 100644
--- a/ufraw.spec
+++ b/ufraw.spec
@@ -7,11 +7,15 @@ Summary: RAW photo loader
Summary(pl.UTF-8): Narzędzie do wczytywania zdjęć w formacie RAW
Name: ufraw
Version: 0.22
-Release: 8
+Release: 9
License: GPL v2+
Group: Applications/Graphics
Source0: http://downloads.sourceforge.net/ufraw/%{name}-%{version}.tar.gz
# Source0-md5: c30767cae2c44310f2a3d67d7a76f2c3
+Patch0: 05_fix_build_due_to_unsigned_char.patch
+Patch1: ufraw-find_green.patch
+Patch2: ufraw-lf-destroy.patch
+Patch3: ufraw-multipliers.patch
URL: http://ufraw.sourceforge.net/
BuildRequires: automake
BuildRequires: bzip2-devel
@@ -99,6 +103,10 @@ Wtyczka GIMP-a do wczytywania zdjęć w formacie RAW.
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%build
cp -f /usr/share/automake/mkinstalldirs .
diff --git a/05_fix_build_due_to_unsigned_char.patch b/05_fix_build_due_to_unsigned_char.patch
new file mode 100644
index 0000000..9b634b6
--- /dev/null
+++ b/05_fix_build_due_to_unsigned_char.patch
@@ -0,0 +1,14 @@
+Author: Philip Rinn <rinni at inventati.org>
+Description: Fix build with C++11 as char is unsigned on some architectures
+Last-update: 2015-11-04
+--- a/dcraw.cc
++++ b/dcraw.cc
+@@ -2054,7 +2054,7 @@
+
+ void CLASS kodak_radc_load_raw()
+ {
+- static const char src[] = {
++ static const signed char src[] = {
+ 1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8,
+ 1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8,
+ 2,1, 2,3, 3,0, 3,2, 3,4, 4,6, 5,5, 6,7, 6,8,
diff --git a/ufraw-find_green.patch b/ufraw-find_green.patch
new file mode 100644
index 0000000..04b052e
--- /dev/null
+++ b/ufraw-find_green.patch
@@ -0,0 +1,28 @@
+Author: nkbj <nkbj>
+Date: Sat Aug 6 04:00:25 2016 +0000
+
+ Fix bug #407: Wrong variable type for find_green() return value.
+
+diff --git a/dcraw.cc b/dcraw.cc
+index 416fd61..bcae4f2 100644
+--- a/dcraw.cc
++++ b/dcraw.cc
+@@ -9341,13 +9341,13 @@ canon_a5:
+ filters = 0x16161616;
+ }
+ if (make[0] == 'O') {
+- i = find_green (12, 32, 1188864, 3576832);
+- c = find_green (12, 32, 2383920, 2387016);
+- if (abs(i) < abs(c)) {
+- SWAP(i,c);
++ float g1 = find_green (12, 32, 1188864, 3576832);
++ float g2 = find_green (12, 32, 2383920, 2387016);
++ if (fabsf(g1) < fabsf(g2)) {
++ SWAP(g1,g2);
+ load_flags = 24;
+ }
+- if ((int) i < 0) filters = 0x61616161;
++ if (g1 < 0) filters = 0x61616161;
+ }
+ } else if (fsize == 5869568) {
+ if (!timestamp && minolta_z2()) {
diff --git a/ufraw-lf-destroy.patch b/ufraw-lf-destroy.patch
new file mode 100644
index 0000000..cf06789
--- /dev/null
+++ b/ufraw-lf-destroy.patch
@@ -0,0 +1,15 @@
+--- ufraw-0.22/ufraw_ufraw.c 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw_ufraw.c 2016-12-18 00:55:45.794466747 +0000
+@@ -767,8 +767,10 @@ void ufraw_close(ufraw_data *uf)
+ g_free(uf->displayProfile);
+ g_free(uf->RawHistogram);
+ #ifdef HAVE_LENSFUN
+- lf_modifier_destroy(uf->TCAmodifier);
+- lf_modifier_destroy(uf->modifier);
++ if (uf->TCAmodifier != NULL)
++ lf_modifier_destroy(uf->TCAmodifier);
++ if (uf->modifier != NULL)
++ lf_modifier_destroy(uf->modifier);
+ #endif
+ ufobject_delete(uf->conf->ufobject);
+ g_free(uf->conf);
diff --git a/ufraw-multipliers.patch b/ufraw-multipliers.patch
new file mode 100644
index 0000000..820369c
--- /dev/null
+++ b/ufraw-multipliers.patch
@@ -0,0 +1,503 @@
+Author: nkbj <nkbj>
+Date: Sat Aug 6 05:00:13 2016 +0000
+
+ Add patches to use RGB channel multipliers from ID file and implement noExit option. The Cancel button acts as Quit when noExit is set. Patches were found in the ufraw-devel archive.
+
+diff -rup ufraw-0.22/po/ca.po ufraw-0.22.new/po/ca.po
+--- ufraw-0.22/po/ca.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/ca.po 2016-10-26 01:37:42.883283772 +0100
+@@ -1462,6 +1462,9 @@ msgstr "Recorda el camí de sortida"
+ msgid "Overwrite existing files without asking"
+ msgstr "S'estant sobreescribint els fitxers sense confirmació"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Etiqueta"
+
+diff -rup ufraw-0.22/po/cs.po ufraw-0.22.new/po/cs.po
+--- ufraw-0.22/po/cs.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/cs.po 2016-10-26 01:37:42.883283772 +0100
+@@ -1433,6 +1433,9 @@ msgstr "Pamatovat si výstupní cestu"
+ msgid "Overwrite existing files without asking"
+ msgstr "Přepsat existující soubory bez vyzvání"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Štítek"
+
+diff -rup ufraw-0.22/po/da.po ufraw-0.22.new/po/da.po
+--- ufraw-0.22/po/da.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/da.po 2016-10-26 01:37:42.884283783 +0100
+@@ -1425,6 +1425,9 @@ msgstr "Husk uddatasti"
+ msgid "Overwrite existing files without asking"
+ msgstr "Overskriv eksisterende filer uden at spørge"
+
++msgid "Do not Exit after raw development"
++msgstr "Luk ikke ned efter rå-billedfremkaldelse"
++
+ msgid "Tag"
+ msgstr "Etiket"
+
+diff -rup ufraw-0.22/po/de.po ufraw-0.22.new/po/de.po
+--- ufraw-0.22/po/de.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/de.po 2016-10-26 01:37:42.884283783 +0100
+@@ -1457,6 +1457,9 @@ msgstr "An Ausgabepfad erinnern"
+ msgid "Overwrite existing files without asking"
+ msgstr "Existierende Dateien ohne Nachfrage überschreiben"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Markierung"
+
+diff -rup ufraw-0.22/po/es.po ufraw-0.22.new/po/es.po
+--- ufraw-0.22/po/es.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/es.po 2016-10-26 01:37:42.885283794 +0100
+@@ -1456,6 +1456,9 @@ msgstr "Recordar ruta de salida"
+ msgid "Overwrite existing files without asking"
+ msgstr "Sobreescribir archivos existentes sin preguntar"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Etiqueta"
+
+diff -rup ufraw-0.22/po/fr.po ufraw-0.22.new/po/fr.po
+--- ufraw-0.22/po/fr.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/fr.po 2016-10-26 01:37:42.885283794 +0100
+@@ -1484,6 +1484,9 @@ msgstr "Mémoriser le chemin de sortie"
+ msgid "Overwrite existing files without asking"
+ msgstr "Écraser les fichiers existants sans demander"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Marqueur"
+
+diff -rup ufraw-0.22/po/it.po ufraw-0.22.new/po/it.po
+--- ufraw-0.22/po/it.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/it.po 2016-10-26 01:37:42.886283805 +0100
+@@ -1455,6 +1455,9 @@ msgstr "Ricorda posizione di uscita"
+ msgid "Overwrite existing files without asking"
+ msgstr "Sovrascrivi i file esistenti senza interazione"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tag"
+
+diff -rup ufraw-0.22/po/ja.po ufraw-0.22.new/po/ja.po
+--- ufraw-0.22/po/ja.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/ja.po 2016-10-26 01:37:42.886283805 +0100
+@@ -1400,6 +1400,9 @@ msgstr "出力場所を記憶"
+ msgid "Overwrite existing files without asking"
+ msgstr "ファイルが存在しても質問無しで上書きする"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "タグ"
+
+diff -rup ufraw-0.22/po/ko.po ufraw-0.22.new/po/ko.po
+--- ufraw-0.22/po/ko.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/ko.po 2016-10-26 01:37:42.887283817 +0100
+@@ -1415,6 +1415,9 @@ msgstr "출력 경로 기억"
+ msgid "Overwrite existing files without asking"
+ msgstr "기존 파일에 덮어쓰기"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "태그"
+
+diff -rup ufraw-0.22/po/nb.po ufraw-0.22.new/po/nb.po
+--- ufraw-0.22/po/nb.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/nb.po 2016-10-26 01:37:42.887283817 +0100
+@@ -1437,6 +1437,9 @@ msgstr "Husk sti for utdata"
+ msgid "Overwrite existing files without asking"
+ msgstr "Skriv over eksisterende filer uten å spørre"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tagg"
+
+diff -rup ufraw-0.22/po/nl.po ufraw-0.22.new/po/nl.po
+--- ufraw-0.22/po/nl.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/nl.po 2016-10-26 01:37:42.888283828 +0100
+@@ -1446,6 +1446,9 @@ msgstr "Bewaar output pad"
+ msgid "Overwrite existing files without asking"
+ msgstr "Overschrijf bestaande bestanden zonder vragen"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tag"
+
+diff -rup ufraw-0.22/po/pl.po ufraw-0.22.new/po/pl.po
+--- ufraw-0.22/po/pl.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/pl.po 2016-10-26 01:37:42.888283828 +0100
+@@ -1433,6 +1433,9 @@ msgstr "Zapamiętaj wyjściową ścieżk
+ msgid "Overwrite existing files without asking"
+ msgstr "Nadpisz istniejące pliki bez pytania"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tag"
+
+diff -rup ufraw-0.22/po/pt.po ufraw-0.22.new/po/pt.po
+--- ufraw-0.22/po/pt.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/pt.po 2016-10-26 01:37:42.889283839 +0100
+@@ -1443,6 +1443,9 @@ msgstr "Lembrar o caminho de saída"
+ msgid "Overwrite existing files without asking"
+ msgstr "Sobrescrever arquivos existentes sem perguntar"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tag"
+
+diff -rup ufraw-0.22/po/ru.po ufraw-0.22.new/po/ru.po
+--- ufraw-0.22/po/ru.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/ru.po 2016-10-26 01:37:42.889283839 +0100
+@@ -1457,6 +1457,9 @@ msgstr "Запомнить катало�
+ msgid "Overwrite existing files without asking"
+ msgstr "Перезаписать существующие файлы без подтверждения"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Тег"
+
+diff -rup ufraw-0.22/po/sr at latin.po ufraw-0.22.new/po/sr at latin.po
+--- ufraw-0.22/po/sr at latin.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/sr at latin.po 2016-10-26 01:37:42.890283850 +0100
+@@ -1459,6 +1459,9 @@ msgstr "Zapamti izlaznu putanju"
+ msgid "Overwrite existing files without asking"
+ msgstr "Prepiši postojeće datoteke bez pitanja"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Oznaka"
+
+diff -rup ufraw-0.22/po/sr.po ufraw-0.22.new/po/sr.po
+--- ufraw-0.22/po/sr.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/sr.po 2016-10-26 01:37:42.890283850 +0100
+@@ -1452,6 +1452,9 @@ msgstr "Запамти излазну п
+ msgid "Overwrite existing files without asking"
+ msgstr "Препиши постојеће датотеке без питања"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Ознака"
+
+diff -rup ufraw-0.22/po/sv.po ufraw-0.22.new/po/sv.po
+--- ufraw-0.22/po/sv.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/sv.po 2016-10-26 01:37:42.891283861 +0100
+@@ -1298,6 +1298,9 @@ msgstr ""
+ msgid "Overwrite existing files without asking"
+ msgstr "Skriv över befintliga filer utan att fråga"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "Tagg"
+
+diff -rup ufraw-0.22/po/ufraw.pot ufraw-0.22.new/po/ufraw.pot
+--- ufraw-0.22/po/ufraw.pot 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/ufraw.pot 2016-10-26 01:37:42.891283861 +0100
+@@ -1268,6 +1268,9 @@ msgstr ""
+ msgid "Overwrite existing files without asking"
+ msgstr ""
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr ""
+
+diff -rup ufraw-0.22/po/zh_CN.po ufraw-0.22.new/po/zh_CN.po
+--- ufraw-0.22/po/zh_CN.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/zh_CN.po 2016-10-26 01:37:42.892283872 +0100
+@@ -1397,6 +1397,9 @@ msgstr "记住输出路径"
+ msgid "Overwrite existing files without asking"
+ msgstr "覆盖现有文件而不询问"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "标记"
+
+diff -rup ufraw-0.22/po/zh_TW.po ufraw-0.22.new/po/zh_TW.po
+--- ufraw-0.22/po/zh_TW.po 2015-06-17 02:59:16.000000000 +0100
++++ ufraw-0.22.new/po/zh_TW.po 2016-10-26 01:37:42.892283872 +0100
+@@ -1399,6 +1399,9 @@ msgstr "記住輸出路徑"
+ msgid "Overwrite existing files without asking"
+ msgstr "覆寫現有檔案而不要求確認"
+
++msgid "Do not Exit after raw development"
++msgstr ""
++
+ msgid "Tag"
+ msgstr "標記"
+
+diff -rup ufraw-0.22/ufraw_conf.c ufraw-0.22.new/ufraw_conf.c
+--- ufraw-0.22/ufraw_conf.c 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw_conf.c 2016-10-26 01:37:42.893283883 +0100
+@@ -115,6 +115,7 @@ const conf_data conf_default = {
+ FALSE, /* overwrite existing files without asking */
+ FALSE, /* losslessCompress */
+ FALSE, /* load embedded preview image */
++ FALSE, /* noExit */
+ TRUE, /* rotate to camera's setting */
+
+ /* GUI settings */
+@@ -762,6 +763,7 @@ static void conf_parse_text(GMarkupParse
+ if (!strcmp("Overwrite", element)) sscanf(temp, "%d", &c->overwrite);
+ if (!strcmp("LosslessCompression", element))
+ sscanf(temp, "%d", &c->losslessCompress);
++ if (!strcmp("NoExit", element)) sscanf(temp, "%d", &c->noExit);
+ }
+
+ int conf_load(conf_data *c, const char *IDFilename)
+@@ -1114,6 +1116,8 @@ int conf_save(conf_data *c, char *IDFile
+ buf = uf_markup_buf(buf,
+ "<LosslessCompression>%d</LosslessCompression>\n",
+ c->losslessCompress);
++ if (c->noExit != conf_default.noExit)
++ buf = uf_markup_buf(buf, "<NoExit>%d</NoExit>\n", c->noExit);
+ for (i = 0; i < c->BaseCurveCount; i++) {
+ char *curveBuf = curve_buffer(&c->BaseCurve[i]);
+ /* Write curve if it is non-default and we are not writing to .ufraw */
+@@ -1477,6 +1481,7 @@ void conf_copy_save(conf_data *dst, cons
+ dst->progressiveJPEG = src->progressiveJPEG;
+ dst->losslessCompress = src->losslessCompress;
+ dst->embeddedImage = src->embeddedImage;
++ dst->noExit = src->noExit;
+ }
+
+ int conf_set_cmd(conf_data *conf, const conf_data *cmd)
+@@ -1494,6 +1499,7 @@ int conf_set_cmd(conf_data *conf, const
+ conf->losslessCompress = cmd->losslessCompress;
+ if (cmd->embedExif != -1) conf->embedExif = cmd->embedExif;
+ if (cmd->embeddedImage != -1) conf->embeddedImage = cmd->embeddedImage;
++ if (cmd->noExit != -1) conf->noExit = cmd->noExit;
+ if (cmd->rotate != -1) conf->rotate = cmd->rotate;
+ if (cmd->rotationAngle != NULLF) conf->rotationAngle = cmd->rotationAngle;
+ if (cmd->autoCrop != -1)
+@@ -1880,6 +1886,7 @@ int ufraw_process_args(int *argc, char *
+ cmd->autoBlack = disabled_state;
+ cmd->losslessCompress = -1;
+ cmd->overwrite = -1;
++ cmd->noExit = -1;
+ cmd->WindowMaximized = -1;
+ cmd->embedExif = -1;
+ cmd->profile[1][0].BitDepth = -1;
+diff -rup ufraw-0.22/ufraw.h ufraw-0.22.new/ufraw.h
+--- ufraw-0.22/ufraw.h 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw.h 2016-10-26 01:37:42.892283872 +0100
+@@ -284,7 +284,7 @@ typedef struct {
+ char inputURI[max_path], inputModTime[max_name];
+ int type, compression, createID, embedExif, progressiveJPEG;
+ int shrink, size;
+- gboolean overwrite, losslessCompress, embeddedImage;
++ gboolean overwrite, losslessCompress, embeddedImage, noExit;
+ gboolean rotate;
+
+ /* GUI settings */
+@@ -407,7 +407,7 @@ void ufraw_invalidate_darkframe_layer(uf
+ void ufraw_invalidate_despeckle_layer(ufraw_data *uf);
+ void ufraw_invalidate_whitebalance_layer(ufraw_data *uf);
+ void ufraw_invalidate_smoothing_layer(ufraw_data *uf);
+-int ufraw_set_wb(ufraw_data *uf);
++int ufraw_set_wb(ufraw_data *uf, gboolean interactive);
+ void ufraw_auto_expose(ufraw_data *uf);
+ void ufraw_auto_black(ufraw_data *uf);
+ void ufraw_auto_curve(ufraw_data *uf);
+diff -rup ufraw-0.22/ufraw_preview.c ufraw-0.22.new/ufraw_preview.c
+--- ufraw-0.22/ufraw_preview.c 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw_preview.c 2016-10-26 01:37:42.894283894 +0100
+@@ -3983,6 +3983,7 @@ static void control_button_event(GtkWidg
+ options_dialog(data);
+ break;
+ case cancel_button:
++ CFG->noExit = FALSE;
+ response = GTK_RESPONSE_CANCEL;
+ break;
+ case delete_button:
+@@ -4011,18 +4012,18 @@ static void control_button_event(GtkWidg
+ // Finish this session
+ g_object_set_data(G_OBJECT(window), "WindowResponse",
+ (gpointer)response);
+- gtk_main_quit();
+- } else {
+- // Restore setting
+- CFG->shrink = shrinkSave;
+- CFG->size = sizeSave;
+- data->FreezeDialog = FALSE;
+- gtk_widget_set_sensitive(data->Controls, TRUE);
+- // cases that set error status require redrawing of the preview image
+- if (status != UFRAW_SUCCESS) {
+- ufraw_invalidate_layer(data->UF, ufraw_raw_phase);
+- render_preview(data);
+- }
++ if (!CFG->noExit)
++ gtk_main_quit();
++ }
++ // Restore setting
++ CFG->shrink = shrinkSave;
++ CFG->size = sizeSave;
++ data->FreezeDialog = FALSE;
++ gtk_widget_set_sensitive(data->Controls, TRUE);
++ // cases that set error status require redrawing of the preview image
++ if (status != UFRAW_SUCCESS || CFG->noExit) {
++ ufraw_invalidate_layer(data->UF, ufraw_raw_phase);
++ render_preview(data);
+ }
+ }
+
+@@ -5390,6 +5391,10 @@ static void save_fill_interface(preview_
+ button = uf_check_button_new(
+ _("Overwrite existing files without asking"), &CFG->overwrite);
+ gtk_box_pack_start(GTK_BOX(vBox), button, FALSE, FALSE, 0);
++
++ button = uf_check_button_new(
++ _("Do not Exit after raw development"), &CFG->noExit);
++ gtk_box_pack_start(GTK_BOX(vBox), button, FALSE, FALSE, 0);
+ /* End of Save page */
+ }
+
+diff -rup ufraw-0.22/ufraw_settings.cc ufraw-0.22.new/ufraw_settings.cc
+--- ufraw-0.22/ufraw_settings.cc 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw_settings.cc 2016-10-26 01:37:42.894283894 +0100
+@@ -355,7 +355,7 @@ void Image::SetWB(const char *mode)
+ }
+ if (mode != NULL)
+ wb.Set(mode);
+- ufraw_set_wb(uf);
++ ufraw_set_wb(uf, TRUE);
+ if (wb.IsEqual(uf_spot_wb))
+ wb.Set(uf_manual_wb);
+ }
+diff -rup ufraw-0.22/ufraw_ufraw.c ufraw-0.22.new/ufraw_ufraw.c
+--- ufraw-0.22/ufraw_ufraw.c 2015-06-16 04:58:38.000000000 +0100
++++ ufraw-0.22.new/ufraw_ufraw.c 2016-10-26 01:37:42.895283906 +0100
+@@ -726,7 +726,7 @@ int ufraw_load_raw(ufraw_data *uf)
+ UFObject *wbTuning = ufgroup_element(uf->conf->ufobject,
+ ufWBFineTuning);
+ double oldTuning = ufnumber_value(wbTuning);
+- ufraw_set_wb(uf);
++ ufraw_set_wb(uf, FALSE);
+ /* Here ufobject's automation goes against us. A change in
+ * ChannelMultipliers might change ufWB to uf_manual_wb.
+ * So we need to change it back. */
+@@ -2014,7 +2014,7 @@ void ufraw_invalidate_smoothing_layer(uf
+ ufraw_invalidate_layer(uf, ufraw_first_phase);
+ }
+
+-int ufraw_set_wb(ufraw_data *uf)
++int ufraw_set_wb(ufraw_data *uf, gboolean interactive)
+ {
+ dcraw_data *raw = uf->raw;
+ double rgbWB[3];
+@@ -2031,37 +2031,39 @@ int ufraw_set_wb(ufraw_data *uf)
+ /* For uf_manual_wb we calculate chanMul from the temperature/green. */
+ /* For all other it is the other way around. */
+ if (ufarray_is_equal(wb, uf_manual_wb)) {
+- double chanMulArray[4] = {1, 1, 1, 1 };
+- Temperature_to_RGB(ufnumber_value(temperature), rgbWB);
+- rgbWB[1] = rgbWB[1] / ufnumber_value(green);
+- /* Suppose we shot a white card at some temperature:
+- * rgbWB[3] = rgb_cam[3][4] * preMul[4] * camWhite[4]
+- * Now we want to make it white (1,1,1), so we replace preMul
+- * with chanMul, which is defined as:
+- * chanMul[4][4] = cam_rgb[4][3] * (1/rgbWB[3][3]) * rgb_cam[3][4]
+- * * preMul[4][4]
+- * We "upgraded" preMul, chanMul and rgbWB to diagonal matrices.
+- * This allows for the manipulation:
+- * (1/chanMul)[4][4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3][3]
+- * * rgb_cam[3][4]
+- * We use the fact that rgb_cam[3][4] * (1,1,1,1) = (1,1,1) and get:
+- * (1/chanMul)[4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3]
+- */
+- if (uf->raw_color) {
+- /* If there is no color matrix it is simple */
+- if (uf->colors > 1)
+- for (c = 0; c < 3; c++)
+- chanMulArray[c] = raw->pre_mul[c] / rgbWB[c];
+- ufnumber_array_set(chanMul, chanMulArray);
+- } else {
+- for (c = 0; c < uf->colors; c++) {
+- double chanMulInv = 0;
+- for (cc = 0; cc < 3; cc++)
+- chanMulInv += 1 / raw->pre_mul[c] * raw->cam_rgb[c][cc]
+- * rgbWB[cc];
+- chanMulArray[c] = 1 / chanMulInv;
++ if (interactive) {
++ double chanMulArray[4] = {1, 1, 1, 1 };
++ Temperature_to_RGB(ufnumber_value(temperature), rgbWB);
++ rgbWB[1] = rgbWB[1] / ufnumber_value(green);
++ /* Suppose we shot a white card at some temperature:
++ * rgbWB[3] = rgb_cam[3][4] * preMul[4] * camWhite[4]
++ * Now we want to make it white (1,1,1), so we replace preMul
++ * with chanMul, which is defined as:
++ * chanMul[4][4] = cam_rgb[4][3] * (1/rgbWB[3][3]) * rgb_cam[3][4]
++ * * preMul[4][4]
++ * We "upgraded" preMul, chanMul and rgbWB to diagonal matrices.
++ * This allows for the manipulation:
++ * (1/chanMul)[4][4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3][3]
++ * * rgb_cam[3][4]
++ * We use the fact that rgb_cam[3][4] * (1,1,1,1) = (1,1,1) and get:
++ * (1/chanMul)[4] = (1/preMul)[4][4] * cam_rgb[4][3] * rgbWB[3]
++ */
++ if (uf->raw_color) {
++ /* If there is no color matrix it is simple */
++ if (uf->colors > 1)
++ for (c = 0; c < 3; c++)
++ chanMulArray[c] = raw->pre_mul[c] / rgbWB[c];
++ ufnumber_array_set(chanMul, chanMulArray);
++ } else {
++ for (c = 0; c < uf->colors; c++) {
++ double chanMulInv = 0;
++ for (cc = 0; cc < 3; cc++)
++ chanMulInv += 1 / raw->pre_mul[c] * raw->cam_rgb[c][cc]
++ * rgbWB[cc];
++ chanMulArray[c] = 1 / chanMulInv;
++ }
++ ufnumber_array_set(chanMul, chanMulArray);
+ }
+- ufnumber_array_set(chanMul, chanMulArray);
+ }
+ ufnumber_set(wbTuning, 0);
+ return UFRAW_SUCCESS;
+@@ -2173,7 +2175,7 @@ int ufraw_set_wb(ufraw_data *uf)
+ ufnumber_array_set(chanMul, wb_preset[lastTuning].channel);
+ } else {
+ ufobject_set_string(wb, uf_manual_wb);
+- ufraw_set_wb(uf);
++ ufraw_set_wb(uf, interactive);
+ return UFRAW_WARNING;
+ }
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ufraw.git/commitdiff/66fdc3c68f2164557002aab359174a5bdb8112ee
More information about the pld-cvs-commit
mailing list