summaryrefslogtreecommitdiffstats
path: root/tksao/fitsy++
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-02-12 21:45:26 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-02-12 21:45:26 (GMT)
commit86fd01170d0377086671cfab94cdd6b363e1ef3d (patch)
treee3ba1d31ef46cd6b70140b0fcaf13f63ccd50ed8 /tksao/fitsy++
parent058ebb718a016fabc4665cc8bf73f48c5ad847a6 (diff)
downloadblt-86fd01170d0377086671cfab94cdd6b363e1ef3d.zip
blt-86fd01170d0377086671cfab94cdd6b363e1ef3d.tar.gz
blt-86fd01170d0377086671cfab94cdd6b363e1ef3d.tar.bz2
fixed an issue with the logic of locating keywords in current hdu and then the primary hdu
Diffstat (limited to 'tksao/fitsy++')
-rw-r--r--tksao/fitsy++/file.C118
1 files changed, 56 insertions, 62 deletions
diff --git a/tksao/fitsy++/file.C b/tksao/fitsy++/file.C
index b0f0539..bf7f2b4 100644
--- a/tksao/fitsy++/file.C
+++ b/tksao/fitsy++/file.C
@@ -399,56 +399,52 @@ void FitsFile::parseENVI(istream& str)
int FitsFile::find(const char* name)
{
- if (head_) {
+ if (head_)
if (head_->find(name))
return 1;
- else
- if (primary_ && inherit_)
- if (primary_->find(name))
- return 1;
- }
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return 1;
return 0;
}
int FitsFile::getLogical(const char* name, int def)
{
- if (head_) {
- int r = head_->getLogical(name,def);
- if (r != def)
- return r;
- else
- if (primary_ && inherit_)
- return primary_->getLogical(name,def);
- }
+ if (head_)
+ if (head_->find(name))
+ return head_->getLogical(name,def);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return primary_->getLogical(name,def);
return def;
}
int FitsFile::getInteger(const char* name, int def)
{
- if (head_) {
- int r = head_->getInteger(name,def);
- if (r != def)
- return r;
- else
- if (primary_ && inherit_)
+ if (head_)
+ if (head_->find(name))
+ return head_->getInteger(name,def);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
return primary_->getInteger(name,def);
- }
return def;
}
double FitsFile::getReal(const char* name, double def)
{
- if (head_) {
- double r = head_->getReal(name,def);
- if (r != def)
- return r;
- else
- if (primary_ && inherit_)
- return primary_->getReal(name,def);
- }
+ if (head_)
+ if (head_->find(name))
+ return head_->getReal(name,def);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return primary_->getReal(name,def);
return def;
}
@@ -456,16 +452,17 @@ double FitsFile::getReal(const char* name, double def)
void FitsFile::getComplex(const char* name, double* real, double* img,
double rdef, double idef)
{
- if (head_) {
- head_->getComplex(name, real, img, rdef, idef);
- if (*real != rdef || *img != idef)
+ if (head_)
+ if (head_->find(name)) {
+ head_->getComplex(name, real, img, rdef, idef);
return;
- else
- if (primary_ && inherit_) {
- primary_->getComplex(name, real, img, rdef, idef);
- return;
- }
- }
+ }
+
+ if (primary_ && inherit_)
+ if (primary_->find(name)) {
+ primary_->getComplex(name, real, img, rdef, idef);
+ return;
+ }
*real = rdef;
*img = idef;
@@ -473,42 +470,39 @@ void FitsFile::getComplex(const char* name, double* real, double* img,
char* FitsFile::getString(const char* name)
{
- if (head_) {
- char* r = head_->getString(name);
- if (r)
- return r;
- else
- if (primary_ && inherit_)
- return primary_->getString(name);
- }
+ if (head_)
+ if (head_->find(name))
+ return head_->getString(name);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return primary_->getString(name);
return NULL;
}
char* FitsFile::getComment(const char* name)
{
- if (head_) {
- char* r = head_->getComment(name);
- if (r)
- return r;
- else
- if (primary_ && inherit_)
- return primary_->getComment(name);
- }
+ if (head_)
+ if (head_->find(name))
+ return head_->getComment(name);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return primary_->getComment(name);
return NULL;
}
char* FitsFile::getKeyword(const char* name)
{
- if (head_) {
- char* r = head_->getKeyword(name);
- if (r)
- return r;
- else
- if (primary_ && inherit_)
- return primary_->getKeyword(name);
- }
+ if (head_)
+ if (head_->find(name))
+ return head_->getKeyword(name);
+
+ if (primary_ && inherit_)
+ if (primary_->find(name))
+ return primary_->getKeyword(name);
return NULL;
}