From: Frank v. M. <fr...@fr...> - 2009-08-23 12:30:19
|
On Fri, Jul 17, 2009 at 08:33:02PM +0200, Frank van Maarseveen wrote: > On Tue, Jul 14, 2009 at 06:28:36AM +0200, Niels Kristian Bech Jensen wrote: > > > > > Date: Sun, 12 Jul 2009 11:11:05 +0200 > > > From: fr...@fr... > > > To: ufr...@li... > > > Subject: [UFRaw-Devel] loading/saving ID file with createid==only doesn't work > > > > > > When the ID file specifies createID==only_id as in > > > > > > <CreateID>2</CreateID> > > > > > > and I fire up ufraw with this ID file as argument then the save button > > > does not behave as expected: it also converts and saves the image. It > > > appears that ufraw silently decides to replace "only_id" by "also_id" > > > when read from an ID file, see around line 162 in ufraw_ufraw.c > > > > > > >From the outside this looks like a bug because ufraw is just not doing > > > what it has been told. Is there any special reason for this "magic" > > > or can we just remove it? > > > > > ... seems the code is needed to get ufraw-batch to save the image file when given a ID file as input. > > IMHO, these kind of magic decisions underneath (though it superficially > may seem a good thing to do) is not helping at all on the long term > where it will be perceived as a bug/stubborn behavior or just illogic. > > Anyway, here is take 2 of the patch. Essentially it makes the old > behavior ufraw-batch specific (apparently ufraw-batch.c itself assumes > this particular behavior): [...] The ID file CreateID promotion issue is also present in the --create-id option and I just got bitten by it. When ufraw-batch is used as a preparational step for anything else then the image output generation not only is redundant but takes a disproportional amount of time. So the --create-id=only option is useful even for ufraw-batch but it doesn't work. Fix: diff --git a/ufraw-batch.c b/ufraw-batch.c index 79f77c3..85c989c 100644 --- a/ufraw-batch.c +++ b/ufraw-batch.c @@ -86,8 +86,6 @@ int main (int argc, char **argv) continue; } status = ufraw_config(uf, &rc, &conf, &cmd); - if (uf->conf && uf->conf->createID == only_id) - uf->conf->createID = also_id; if (status==UFRAW_ERROR) { exitCode = 1; ufraw_close(uf); @@ -107,10 +105,11 @@ int main (int argc, char **argv) stat[0] = '\0'; ufraw_message(UFRAW_MESSAGE, _("Loaded %s%s"), uf->filename, stat); status = ufraw_batch_saver(uf); - if (status==UFRAW_SUCCESS || status==UFRAW_WARNING) - ufraw_message(UFRAW_MESSAGE, _("Saved %s%s"), - uf->conf->outputFilename, stat); - else + if (status==UFRAW_SUCCESS || status==UFRAW_WARNING) { + if (uf->conf->createID!=only_id) + ufraw_message(UFRAW_MESSAGE, _("Saved %s%s"), + uf->conf->outputFilename, stat); + } else exitCode = 1; ufraw_close(uf); g_free(uf); diff --git a/ufraw.h b/ufraw.h index ce85436..dc1e287 100644 --- a/ufraw.h +++ b/ufraw.h @@ -152,7 +152,6 @@ typedef struct { * CONF|ID: curve/profile are added to the list from RC. * CONF: inputFilename, outputFilename are ignored. * outputPath can only be specified in CMD or guessed in interactive mode. - * ID: createID==only_id is switched to also_id in case of ufraw-batch. * ID: chanMul[] override wb, green, temperature. */ typedef struct { -- Frank |