[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnuastro-commits] master 2378a95: Match output names keep directory of
From: |
Mohammad Akhlaghi |
Subject: |
[gnuastro-commits] master 2378a95: Match output names keep directory of given output |
Date: |
Mon, 26 Feb 2018 11:54:43 -0500 (EST) |
branch: master
commit 2378a95bc746a775c010402181b94a780991ba0c
Author: Mohammad Akhlaghi <address@hidden>
Commit: Mohammad Akhlaghi <address@hidden>
Match output names keep directory of given output
Until now, when Match was asked to make two files with a given output
filename, it will ignore the directory of the output.
This is because it uses the standard `gal_checkset_automatic_output'
function which is designed for making an output filenames from THE INPUT
filename. Therefore, as described in Automatic output, it will ignore the
directory of the input's name by default.
However, Match can have two output file names (when the output is requested
to be a text file). In such cases, it also uses
`gal_checkset_automatic_output' to generate the (new) output file names
from the single output name given to it, which caused the problem above.
To fix the issue, when the output file name is used to define the new
output names, Match now temporarily sets `p->cp.keepinputdir' to 1.
This fixes bug #53226.
---
NEWS | 2 ++
bin/match/ui.c | 13 +++++++++++++
2 files changed, 15 insertions(+)
diff --git a/NEWS b/NEWS
index abccbc8..f8a8585 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,8 @@ GNU Astronomy Utilities NEWS -*-
outline -*-
NULL value of onlyversion option causing a crash (bug #53147).
+ Match output directory ignored when making multiple files (bug #53226).
+
diff --git a/bin/match/ui.c b/bin/match/ui.c
index a1cf2af..69691af 100644
--- a/bin/match/ui.c
+++ b/bin/match/ui.c
@@ -564,6 +564,10 @@ ui_preparations_out_cols(struct matchparams *p)
static void
ui_preparations_out_name(struct matchparams *p)
{
+ /* To temporarily keep the original value. */
+ uint8_t keepinputdir_orig;
+
+ /* Set the output file(s) name(s). */
if(p->logasoutput)
{
/* Set the logname (as output). */
@@ -604,12 +608,21 @@ ui_preparations_out_name(struct matchparams *p)
}
else
{
+ /* Here, we are be using the output name as input to the
+ automatic output generating function (usually it is
+ the input name, not the output name). Therefore, the
+ `keepinputdir' variable should be 1. So we will
+ temporarily change it here, then set it back to what
+ it was. */
+ keepinputdir_orig=p->cp.keepinputdir;
+ p->cp.keepinputdir=1;
p->out1name=gal_checkset_automatic_output(&p->cp,
p->cp.output,
"_matched_1.txt");
p->out2name=gal_checkset_automatic_output(&p->cp,
p->cp.output,
"_matched_2.txt");
+ p->cp.keepinputdir=keepinputdir_orig;
}
}
else
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnuastro-commits] master 2378a95: Match output names keep directory of given output,
Mohammad Akhlaghi <=