[Getdata-commits] SF.net SVN: getdata:[825] trunk/getdata
Scientific Database Format
Brought to you by:
ketiltrout
|
From: <ket...@us...> - 2013-04-05 01:08:23
|
Revision: 825
http://sourceforge.net/p/getdata/code/825
Author: ketiltrout
Date: 2013-04-05 01:08:18 +0000 (Fri, 05 Apr 2013)
Log Message:
-----------
Fix various MPLEX bugs/inconsistencies.
Modified Paths:
--------------
trunk/getdata/ChangeLog
trunk/getdata/NEWS
trunk/getdata/bindings/cxx/getdata/entry.h
trunk/getdata/bindings/cxx/getdata/mplexentry.h
trunk/getdata/bindings/cxx/mplexentry.cpp
trunk/getdata/bindings/cxx/test/big_test.cpp
trunk/getdata/bindings/f77/fgetdata.c
trunk/getdata/bindings/f77/getdata.f90.in
trunk/getdata/bindings/f77/test/big_test95.f90
trunk/getdata/bindings/idl/getdata.c
trunk/getdata/bindings/idl/test/big_test.pro
trunk/getdata/bindings/matlab/gd_add_mplex.m
trunk/getdata/bindings/matlab/gd_alter_mplex.m
trunk/getdata/bindings/matlab/gd_madd_mplex.m
trunk/getdata/bindings/matlab/matlab.c
trunk/getdata/bindings/matlab/test/big_test.m
trunk/getdata/bindings/perl/GetData.xs
trunk/getdata/bindings/perl/simple_funcs.xsin
trunk/getdata/bindings/perl/t/big_test.t
trunk/getdata/bindings/python/pyentry.c
trunk/getdata/bindings/python/test/big_test.py
trunk/getdata/man/dirfile-format.5
trunk/getdata/man/gd_add_bit.3
trunk/getdata/man/gd_alter_bit.3
trunk/getdata/man/gd_cbopen.3
trunk/getdata/man/gd_entry.3
trunk/getdata/man/gd_madd_bit.3
trunk/getdata/man/gd_mplex_lookback.3
trunk/getdata/src/add.c
trunk/getdata/src/del.c
trunk/getdata/src/entry.c
trunk/getdata/src/errors.c
trunk/getdata/src/flush.c
trunk/getdata/src/getdata.c
trunk/getdata/src/getdata.h.in
trunk/getdata/src/internal.h
trunk/getdata/src/legacy.c
trunk/getdata/src/mod.c
trunk/getdata/src/parse.c
trunk/getdata/test/add_mplex.c
trunk/getdata/test/add_mplex_val.c
trunk/getdata/test/entry_mplex.c
trunk/getdata/test/entry_mplex_scalar.c
trunk/getdata/test/madd_mplex.c
trunk/getdata/test/parse_mplex_nomax.c
trunk/getdata/test/seek_neg.c
trunk/getdata/test/tok_arg.c
Modified: trunk/getdata/ChangeLog
===================================================================
--- trunk/getdata/ChangeLog 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/ChangeLog 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,3 +1,40 @@
+2013-03-13 D. V. Wiebe <ge...@ke...> svn:825
+ * src/getdata.h.in: Renamed gd_entry_t.count_max to gd_entry_t.period.
+
+ * bindings/cxx/getdata/entry.h (Entry::Period)
+ bindings/cxx/getdata/mplexentry.h (NplexEntry::Period): Renamed from CountMax.
+ * bindings/cxx/mplexentry.cpp (MplexEntry::SetPeriod): Renamed from
+ SetCountMax.
+ * bindings/cxx/mplexentry.cpp (MplexEntry::MplexEntry)
+ bindings/f77/fgetdata.c (GDGEMX) bindings/f77/getdata.f90.in (fgd_entry
+ fgd_add fgd_madd fgd_alter_entry fgd_add_mplex fgd_madd_mplex
+ fgd_alter_mplex) bindings/idl/getdata.c (gdidl_make_idl_entry
+ gdidl_alter_mplex) bindings/matlab/gd_add_mplex.m
+ bindings/matlab/gd_alter_mplex.m bindings/matlab/gd_madd_mplex.m
+ bindings/matlab/matlab.c (gdmx_from_entry gdmx_to_entry)
+ bindings/perl/GetData.xs (gdp_to_entry entry) bindings/python/pyentry.c
+ (gdpy_set_entry_from_tuple gdpy_entry_getperiod gdpy_entry_setperiod
+ gdpy_entry_getparms): Rename count_max to period.
+
+ * src/add.c (_GD_Add): Fix range checks on MPLEX parameters.
+
+ * src/getdata.c (_GD_DoMplex): The default period is 2n+1, not 2n.
+
+ * src/internal.h: Rename GD_E_ENTRY_CNTMAX to GD_E_ENTRY_PERIOD.
+ * src/errors.c: Update GD_E_ENTRY_PERIOD and GD_E_FORMAT_MPLEXVAL messages.
+
+ * src/mod.c (_GD_Change): mplex.count_val = -1 is not a magic value.
+
+ * src/parse.c (_GD_ParseMplex): Remove incorrect restrictions count_val <=
+ period and count_val >= 0.
+
+ * bindings/idl/getdata.c (gdidl_read_idl_entry): Properly convert an IDL
+ MPLEX entry object.
+
+ * bindings/idl/getdata.c (gdidl_alter_mplex): Handle missing COUNT_VAL.
+
+ * man/dirfile-format.5: Fix and clarify MPLEX specification.
+
2013-03-13 D. V. Wiebe <ge...@ke...> svn:819
* src/flush.c (_GD_FlushFragment): Strip affixes from field codes in
/REFERENCE directives.
Modified: trunk/getdata/NEWS
===================================================================
--- trunk/getdata/NEWS 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/NEWS 2013-04-05 01:08:18 UTC (rev 825)
@@ -2,6 +2,27 @@
Library Changes:
+ * BUG FIX: Inconsistant behaviour in the library, coupled with contradictory
+ statements in the Dirfile Standards, has resulted in confusion over the
+ meaning of the final, optional, parameter in a MPLEX definition. To be clear:
+ this parameter is simply the expected period between successive occurances of
+ the mplex value in the index vector. It is used by GetData only to figure out
+ a resonable length of the MPLEX lookback. To help reduce confusion, this
+ parameter has been renamed from "count_max" to "period". The Standards have
+ also been clarified. See also the following related bug fixes.
+
+ * BUG FIX: The count_val MPLEX parameter is not restricted to non-negative
+ numbers.
+
+ * BUG FIX: The optional period (formerly count_max) MPLEX parameter does not
+ restrict allowed values of the count_val parameter.
+
+ * BUG FIX: The default MPLEX period, if none is specified, is 2*count_val + 1,
+ not simply 2 * count_val, when count_val is greater than 5.
+
+ * BUG FIX: A count_val of -1 in gd_alter_entry or gd_[m]alter_mplex calls is
+ not a special value: it just sets the count_val to -1.
+
* BUG FIX: Trying to position an I/O pointer to before sample zero with
gd_seek() now properly fails. Previously it would allow it, causing bizarre
things to happen later.
@@ -22,6 +43,10 @@
Bindings Changes:
+ * IDL BUG FIX: Entry structs representing MPLEX fields are now properly
+ interpreted. Previously, the underlying gd_entry_t object was being
+ incorrectly initialised.
+
* PYTHON BUG FIX: Numpy arrays returned by dirfile.getdata() are now the
correct length. Previously they would always be the length requested (or the
length of the dirfile, if no length was explicitly given) even if fewer
Modified: trunk/getdata/bindings/cxx/getdata/entry.h
===================================================================
--- trunk/getdata/bindings/cxx/getdata/entry.h 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/cxx/getdata/entry.h 2013-04-05 01:08:18 UTC (rev 825)
@@ -224,8 +224,8 @@
return (E.field_type == GD_MPLEX_ENTRY) ? E.u.mplex.count_val : 0;
}
- virtual int CountMax() const {
- return (E.field_type == GD_MPLEX_ENTRY) ? E.u.mplex.count_max : 0;
+ virtual int Period() const {
+ return (E.field_type == GD_MPLEX_ENTRY) ? E.u.mplex.period : 0;
}
/* Set methods */
Modified: trunk/getdata/bindings/cxx/getdata/mplexentry.h
===================================================================
--- trunk/getdata/bindings/cxx/getdata/mplexentry.h 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/cxx/getdata/mplexentry.h 2013-04-05 01:08:18 UTC (rev 825)
@@ -35,7 +35,7 @@
MplexEntry() : Entry() { E.field_type = GD_MPLEX_ENTRY; };
MplexEntry(const char* field_code, const char* in_field,
- const char *check_Field, int count_val, int count_max,
+ const char *check_field, int count_val, int period,
int fragment_index = 0);
virtual const char *Input(int index = 0) const {
@@ -48,13 +48,13 @@
virtual int CountVal() const { return E.u.mplex.count_val; };
- virtual int CountMax() const { return E.u.mplex.count_max; };
+ virtual int Period() const { return E.u.mplex.period; };
int SetInput(const char* field, int index);
virtual int SetCountVal(int count_val);
virtual int SetCountVal(const char* count_val);
- virtual int SetCountMax(int count_max);
- virtual int SetCountMax(const char* count_max);
+ virtual int SetPeriod(int period);
+ virtual int SetPeriod(const char* period);
private:
MplexEntry(const GetData::Dirfile *dirfile, const char* field_code) :
Modified: trunk/getdata/bindings/cxx/mplexentry.cpp
===================================================================
--- trunk/getdata/bindings/cxx/mplexentry.cpp 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/cxx/mplexentry.cpp 2013-04-05 01:08:18 UTC (rev 825)
@@ -21,11 +21,10 @@
#include "internal.h"
MplexEntry::MplexEntry(const char* field_code, const char* in_field,
- const char* count, int count_val, int count_max,
- int fragment_index) : Entry()
+ const char* count, int count_val, int period, int fragment_index) : Entry()
{
dtrace("\"%s\", \"%s\", \"%s\", %i, %i, %i", field_code,
- in_field, count, count_val, count_max, fragment_index);
+ in_field, count, count_val, period, fragment_index);
E.field = strdup(field_code);
E.field_type = GD_MPLEX_ENTRY;
@@ -33,7 +32,7 @@
E.in_fields[1] = strdup(count);
E.scalar[0] = E.scalar[1] = 0;
E.u.mplex.count_val = count_val;
- E.u.mplex.count_max = count_max;
+ E.u.mplex.period = period;
E.fragment_index = fragment_index;
dreturnvoid();
@@ -73,13 +72,13 @@
return ret;
}
-int MplexEntry::SetCountMax(int count_max)
+int MplexEntry::SetPeriod(int period)
{
int ret = 0;
- dtrace("%u", count_max);
+ dtrace("%u", period);
- E.u.mplex.count_max = count_max;
+ E.u.mplex.period = period;
if (D != NULL)
ret = gd_alter_entry(D->D, E.field, &E, 0);
@@ -107,19 +106,19 @@
return r;
}
-int MplexEntry::SetCountMax(const char *count_max)
+int MplexEntry::SetPeriod(const char *period)
{
int r = 0;
- dtrace("\"%s\"", count_max);
+ dtrace("\"%s\"", period);
- SetScalar(1, count_max);
+ SetScalar(1, period);
if (D != NULL) {
r = gd_alter_entry(D->D, E.field, &E, 0);
if (!r)
- r = gd_get_constant(D->D, count_max, GD_UINT16, &E.u.mplex.count_max);
+ r = gd_get_constant(D->D, period, GD_UINT16, &E.u.mplex.period);
}
dreturn("%i", r);
Modified: trunk/getdata/bindings/cxx/test/big_test.cpp
===================================================================
--- trunk/getdata/bindings/cxx/test/big_test.cpp 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/cxx/test/big_test.cpp 2013-04-05 01:08:18 UTC (rev 825)
@@ -1617,7 +1617,7 @@
CHECK_INT2(228, 3, ent->CountVal(), 1);
CHECK_STRING2(228, 4, ent->Input(0), "data");
CHECK_STRING2(228, 5, ent->Input(1), "sbit");
- CHECK_INT2(228, 6, ent->CountMax(), 10);
+ CHECK_INT2(228, 6, ent->Period(), 10);
delete ent;
// 229: Dirfile::Add / MplexEntry check
@@ -1626,7 +1626,7 @@
xent.SetInput("in1", 0);
xent.SetInput("in2", 1);
xent.SetCountVal(5);
- xent.SetCountMax(6);
+ xent.SetPeriod(6);
d->Add(xent);
CHECK_OK2(229, 1);
@@ -1637,7 +1637,7 @@
CHECK_INT2(229, 3, ent->CountVal(), 5);
CHECK_STRING2(229, 4, ent->Input(0), "in1");
CHECK_STRING2(229, 5, ent->Input(1), "in2");
- CHECK_INT2(229, 6, ent->CountMax(), 6);
+ CHECK_INT2(229, 6, ent->Period(), 6);
delete ent;
// 230: gd_madd_mplex check
@@ -1646,7 +1646,7 @@
xent.SetInput("in2", 0);
xent.SetInput("in3", 1);
xent.SetCountVal(0);
- xent.SetCountMax(12);
+ xent.SetPeriod(12);
d->MAdd(xent, "data");
CHECK_OK2(230, 1);
@@ -1657,7 +1657,7 @@
CHECK_INT2(230, 3, ent->CountVal(), 0);
CHECK_STRING2(230, 4, ent->Input(0), "in2");
CHECK_STRING2(230, 5, ent->Input(1), "in3");
- CHECK_INT2(230, 6, ent->CountMax(), 12);
+ CHECK_INT2(230, 6, ent->Period(), 12);
delete ent;
// 231: gd_alter_mplex check
@@ -1665,7 +1665,7 @@
xep->SetInput("in3", 0);
xep->SetInput("in4", 1);
xep->SetCountVal(3);
- xep->SetCountMax(7);
+ xep->SetPeriod(7);
CHECK_OK2(231, 1);
delete xep;
@@ -1676,7 +1676,7 @@
CHECK_INT2(231, 3, ent->CountVal(), 3);
CHECK_STRING2(231, 4, ent->Input(0), "in3");
CHECK_STRING2(231, 5, ent->Input(1), "in4");
- CHECK_INT2(231, 6, ent->CountMax(), 7);
+ CHECK_INT2(231, 6, ent->Period(), 7);
delete ent;
// 232: gd_tokenise
Modified: trunk/getdata/bindings/f77/fgetdata.c
===================================================================
--- trunk/getdata/bindings/f77/fgetdata.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/f77/fgetdata.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -886,7 +886,7 @@
/* gd_entry wrapper for MPLEX */
void F77_FUNC(gdgemx, GDGEMX) (char *in_field, int32_t *in_field_l,
- char *count_field, int32_t *count_field_l, int32_t *val, int32_t *max,
+ char *count_field, int32_t *count_field_l, int32_t *val, int32_t *period,
int32_t *fragment_index, const int32_t *dirfile, const char *field_code,
const int32_t *field_code_l)
{
@@ -894,7 +894,7 @@
gd_entry_t E;
dtrace("%p, %i, %p, %i, %p, %p, %p, %i, %p, %i", in_field, *in_field_l,
- count_field, *count_field_l, val, max, fragment_index, *dirfile,
+ count_field, *count_field_l, val, period, fragment_index, *dirfile,
field_code, *field_code_l);
if (gd_entry(_GDF_GetDirfile(*dirfile), _GDF_CString(&fc, field_code,
@@ -904,7 +904,7 @@
_GDF_FString(in_field, in_field_l, E.in_fields[0]);
_GDF_FString(count_field, count_field_l, E.in_fields[1]);
*val = E.EN(mplex,count_val);
- *max = E.EN(mplex,count_max);
+ *period = E.EN(mplex,period);
*fragment_index = E.fragment_index;
gd_free_entry_strings(&E);
}
Modified: trunk/getdata/bindings/f77/getdata.f90.in
===================================================================
--- trunk/getdata/bindings/f77/getdata.f90.in 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/f77/getdata.f90.in 2013-04-05 01:08:18 UTC (rev 825)
@@ -30,7 +30,7 @@
type gd_entry
integer :: field_type, n_fields, spf, data_type, bitnum, numbits, shift
integer :: fragment_index, comp_scal, poly_ord, array_len, windop, ithreshold
- integer :: count_val, count_max
+ integer :: count_val, period
character (len=GD_FIELD_LEN), dimension(3) :: field
character (len=GD_FIELD_LEN), dimension(6) :: scalar
integer, dimension(6) :: scalar_ind
@@ -906,7 +906,7 @@
else if (fgd_entry .EQ. GD_MPLEX_ENTRY) then
! mplex
call gdgemx(ent%field(1), len1, ent%field(2), len2, ent%count_val, &
- ent%count_max, ent%fragment_index, dirfile, TRIM(field_code), &
+ ent%period, ent%fragment_index, dirfile, TRIM(field_code), &
LEN_TRIM(field_code))
len1 = GD_FIELD_LEN
@@ -1035,7 +1035,7 @@
else if (ent%field_type .EQ. GD_MPLEX_ENTRY) then
call gdadmx(dirfile, TRIM(field_code), LEN_TRIM(field_code), &
TRIM(ent%field(1)), LEN_TRIM(ent%field(1)), TRIM(ent%field(2)), &
- LEN_TRIM(ent%field(2)), ent%count_val, ent%count_max, ent%fragment_index)
+ LEN_TRIM(ent%field(2)), ent%count_val, ent%period, ent%fragment_index)
else if (ent%field_type .EQ. GD_CONST_ENTRY) then
call gdadco(dirfile, TRIM(field_code), LEN_TRIM(field_code), &
ent%data_type, GD_INT32, zero, ent%fragment_index)
@@ -1279,7 +1279,7 @@
else if (ent%field_type .EQ. GD_MPLEX_ENTRY) then
call gdmdmx(dirfile, TRIM(parent), LEN_TRIM(parent), TRIM(field_code), &
LEN_TRIM(field_code), TRIM(ent%field(1)), LEN_TRIM(ent%field(1)), &
- TRIM(ent%field(2)), LEN_TRIM(ent%field(2)), ent%count_val, ent%count_max)
+ TRIM(ent%field(2)), LEN_TRIM(ent%field(2)), ent%count_val, ent%period)
else if (ent%field_type .EQ. GD_CONST_ENTRY) then
call gdmdco(dirfile, TRIM(parent), LEN_TRIM(parent), TRIM(field_code), &
LEN_TRIM(field_code), ent%data_type, GD_INT32, zero)
@@ -1664,7 +1664,7 @@
else if (ent%field_type .EQ. GD_CONST_ENTRY) then
call gdalmx(dirfile, TRIM(field_code), LEN_TRIM(field_code), &
TRIM(ent%field(1)), LEN_TRIM(ent%field(1)), TRIM(ent%field(2)), &
- LEN_TRIM(ent%field(2)), ent%count_val, ent%count_max, ent%fragment_index)
+ LEN_TRIM(ent%field(2)), ent%count_val, ent%period, ent%fragment_index)
else if (ent%field_type .EQ. GD_CONST_ENTRY) then
call gdalco(dirfile, TRIM(field_code), LEN_TRIM(field_code), ent%data_type)
else if (ent%field_type .EQ. GD_CARRAY_ENTRY) then
@@ -2751,33 +2751,33 @@
end subroutine
subroutine fgd_add_mplex (dirfile, field_code, in_field, count_field, &
- count_val, count_max, fragment_index)
+ count_val, period, fragment_index)
character(len=*), intent(in) :: field_code, in_field, count_field
- integer, intent(in) :: dirfile, count_val, count_max, fragment_index
+ integer, intent(in) :: dirfile, count_val, period, fragment_index
call gdadmx(dirfile, TRIM(field_code), LEN_TRIM(field_code), TRIM(in_field), &
LEN_TRIM(in_field), TRIM(count_field), LEN_TRIM(count_field), count_val, &
- count_max, fragment_index)
+ period, fragment_index)
end subroutine
subroutine fgd_madd_mplex (dirfile, parent, field_code, in_field, count_field, &
- count_val, count_max)
+ count_val, period)
character(len=*), intent(in) :: parent, field_code, in_field, count_field
- integer, intent(in) :: dirfile, count_val, count_max
+ integer, intent(in) :: dirfile, count_val, period
call gdmdmx(dirfile, TRIM(parent), LEN_TRIM(parent), TRIM(field_code), &
LEN_TRIM(field_code), TRIM(in_field), LEN_TRIM(in_field), TRIM(count_field), &
- LEN_TRIM(count_field), count_val, count_max)
+ LEN_TRIM(count_field), count_val, period)
end subroutine
subroutine fgd_alter_mplex (dirfile, field_name, in_field, count_field, &
- count_val, count_max)
- integer, intent(in) :: dirfile, count_val, count_max
+ count_val, period)
+ integer, intent(in) :: dirfile, count_val, period
character (len=*), intent(in) :: field_name, in_field, count_field
call gdalmx(dirfile, TRIM(field_name), LEN_TRIM(field_name), TRIM(in_field), &
LEN_TRIM(in_field), TRIM(count_field), LEN_TRIM(count_field), count_val, &
- count_max)
+ period)
end subroutine
subroutine fgd_strtok (token, l, dirfile, string)
Modified: trunk/getdata/bindings/f77/test/big_test95.f90
===================================================================
--- trunk/getdata/bindings/f77/test/big_test95.f90 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/f77/test/big_test95.f90 2013-04-05 01:08:18 UTC (rev 825)
@@ -2451,7 +2451,7 @@
call check_int2(ne, 228, 3, ent%count_val, 1)
call check_str2(ne, 228, 4, ent%field(1), 'data')
call check_str2(ne, 228, 5, ent%field(2), 'sbit')
- call check_int2(ne, 228, 6, ent%count_max, 10)
+ call check_int2(ne, 228, 6, ent%period, 10)
! 229: fgd_add_mplex check
call fgd_add_mplex(d, 'new21', 'in1', 'in2', 5, 6, 0)
@@ -2464,7 +2464,7 @@
call check_int2(ne, 229, 3, ent%count_val, 5)
call check_str2(ne, 229, 4, ent%field(1), 'in1')
call check_str2(ne, 229, 5, ent%field(2), 'in2')
- call check_int2(ne, 229, 6, ent%count_max, 6)
+ call check_int2(ne, 229, 6, ent%period, 6)
! 230: fgd_madd_mplex check
call fgd_madd_mplex(d, 'data', 'mnew21', 'in2', 'in3', 0, 12)
@@ -2477,7 +2477,7 @@
call check_int2(ne, 230, 3, ent%count_val, 0)
call check_str2(ne, 230, 4, ent%field(1), 'in2')
call check_str2(ne, 230, 5, ent%field(2), 'in3')
- call check_int2(ne, 230, 6, ent%count_max, 12)
+ call check_int2(ne, 230, 6, ent%period, 12)
! 231: fgd_alter_mplex check
call fgd_alter_mplex(d, 'new21', 'in3', 'in4', -1, 7)
@@ -2490,7 +2490,7 @@
call check_int2(ne, 231, 3, ent%count_val, 5)
call check_str2(ne, 231, 4, ent%field(1), 'in3')
call check_str2(ne, 231, 5, ent%field(2), 'in4')
- call check_int2(ne, 231, 6, ent%count_max, 7)
+ call check_int2(ne, 231, 6, ent%period, 7)
! 232: fgd_strtok check
l = slen
Modified: trunk/getdata/bindings/idl/getdata.c
===================================================================
--- trunk/getdata/bindings/idl/getdata.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/idl/getdata.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -593,7 +593,7 @@
*(IDL_INT*)(data + IDL_StructTagInfoByName(gdidl_entry_def,
"COUNT_VAL", IDL_MSG_LONGJMP, NULL)) = E->count_val;
*(IDL_INT*)(data + IDL_StructTagInfoByName(gdidl_entry_def,
- "COUNT_MAX", IDL_MSG_LONGJMP, NULL)) = E->count_max;
+ "PERIOD", IDL_MSG_LONGJMP, NULL)) = E->period;
IDL_StrStore((IDL_STRING*)(data + IDL_StructTagInfoByName(gdidl_entry_def,
"SCALAR", IDL_MSG_LONGJMP, NULL)), E->scalar[0]);
@@ -668,7 +668,8 @@
if (E->field_type == GD_BIT_ENTRY || E->field_type == GD_LINTERP_ENTRY
|| E->field_type == GD_MULTIPLY_ENTRY || E->field_type == GD_PHASE_ENTRY
|| E->field_type == GD_SBIT_ENTRY || E->field_type == GD_POLYNOM_ENTRY
- || E->field_type == GD_DIVIDE_ENTRY || E->field_type == GD_RECIP_ENTRY)
+ || E->field_type == GD_DIVIDE_ENTRY || E->field_type == GD_RECIP_ENTRY
+ || E->field_type == GD_MPLEX_ENTRY || E->field_type == GD_WINDOW_ENTRY)
{
o = IDL_StructTagInfoByName(v->value.s.sdef, "IN_FIELDS", action, &d);
if (o != -1) {
@@ -974,16 +975,16 @@
if (o != -1) {
if (d->type != IDL_TYP_INT)
idl_abort("GD_ENTRY element COUNT_VAL must be of type INT");
- E->bitnum = *(int16_t*)(data + o);
- } else
- E->bitnum = -1;
+ E->count_val = *(int16_t*)(data + o);
+ }
- o = IDL_StructTagInfoByName(v->value.s.sdef, "COUNT_MAX", action, &d);
+ o = IDL_StructTagInfoByName(v->value.s.sdef, "PERIOD", action, &d);
if (o != -1) {
if (d->type != IDL_TYP_INT)
- idl_abort("GD_ENTRY element COUNT_MAX must be of type INT");
- E->numbits = *(int16_t*)(data + o);
- }
+ idl_abort("GD_ENTRY element PERIOD must be of type INT");
+ E->period = *(int16_t*)(data + o);
+ } else
+ E->period = -1;
copy_scalar[0] = copy_scalar[1] = 1;
break;
@@ -5317,7 +5318,7 @@
typedef struct {
IDL_KW_RESULT_FIRST_FIELD;
GDIDL_KW_RESULT_ERROR;
- int val, max;
+ int val, val_x, period;
IDL_STRING in_field1;
int in_field1_x;
IDL_STRING in_field2;
@@ -5325,20 +5326,20 @@
} KW_RESULT;
KW_RESULT kw;
- kw.in_field1_x = kw.in_field2_x = 0;
- kw.val = -1;
- kw.max = -1;
+ kw.in_field1_x = kw.in_field2_x = kw.val_x = 0;
+ kw.period = -1;
GDIDL_KW_INIT_ERROR;
static IDL_KW_PAR kw_pars[] = {
{ "COUNT_FIELD", IDL_TYP_STRING, 1, 0, IDL_KW_OFFSETOF(in_field2_x),
IDL_KW_OFFSETOF(in_field2) },
- { "COUNT_MAX", IDL_TYP_INT, 1, 0, 0, IDL_KW_OFFSETOF(max) },
- { "COUNT_VAL", IDL_TYP_INT, 1, 0, 0, IDL_KW_OFFSETOF(val) },
+ { "COUNT_VAL", IDL_TYP_INT, 1, 0, IDL_KW_OFFSETOF(val_x),
+ IDL_KW_OFFSETOF(val) },
GDIDL_KW_PAR_ERROR,
GDIDL_KW_PAR_ESTRING,
{ "IN_FIELD", IDL_TYP_STRING, 1, 0, IDL_KW_OFFSETOF(in_field1_x),
IDL_KW_OFFSETOF(in_field1) },
+ { "PERIOD", IDL_TYP_INT, 1, 0, 0, IDL_KW_OFFSETOF(period) },
{ NULL }
};
@@ -5347,14 +5348,23 @@
DIRFILE* D = gdidl_get_dirfile(IDL_LongScalar(argv[0]));
const char* field_code = IDL_VarGetString(argv[1]);
- if (kw.in_field1_x)
- in_field1 = IDL_STRING_STR(&kw.in_field1);
+ /* no value specified, figure out the previous value */
+ if (!kw.val_x) {
+ gd_entry_t E;
+ gd_entry(D, field_code, &E);
+ kw.val = E.count_val;
+ }
- if (kw.in_field2_x)
- in_field2 = IDL_STRING_STR(&kw.in_field2);
+ if (!gd_error(D)) {
+ if (kw.in_field1_x)
+ in_field1 = IDL_STRING_STR(&kw.in_field1);
- gd_alter_mplex(D, field_code, in_field1, in_field2, kw.val, kw.max);
+ if (kw.in_field2_x)
+ in_field2 = IDL_STRING_STR(&kw.in_field2);
+ gd_alter_mplex(D, field_code, in_field1, in_field2, kw.val, kw.period);
+ }
+
GDIDL_SET_ERROR(D);
IDL_KW_FREE;
@@ -5855,7 +5865,6 @@
{ "CB", lincom_dims, (void*)IDL_TYP_DCOMPLEX }, /* LINCOM */
{ "BITNUM", 0, (void*)IDL_TYP_INT }, /* (S)BIT */
{ "COMP_SCAL", 0, (void*)IDL_TYP_INT }, /* LINCOM / POLYNOM */
- { "COUNT_MAX", 0, (void*)IDL_TYP_INT }, /* MPLEX */
{ "COUNT_VAL", 0, (void*)IDL_TYP_INT }, /* MPLEX */
{ "DATA_TYPE", 0, (void*)IDL_TYP_INT }, /* RAW / CONST / CARRAY */
{ "DIVIDEND", 0, (void*)IDL_TYP_DOUBLE }, /* RECIP */
@@ -5864,6 +5873,7 @@
{ "CM", lincom_dims, (void*)IDL_TYP_DCOMPLEX }, /* LINCOM */
{ "N_FIELDS", 0, (void*)IDL_TYP_INT }, /* LINCOM */
{ "NUMBITS", 0, (void*)IDL_TYP_INT }, /* (S)BIT */
+ { "PERIOD", 0, (void*)IDL_TYP_INT }, /* MPLEX */
{ "POLY_ORD", 0, (void*)IDL_TYP_INT }, /* POLYNOM */
{ "SCALAR", polynom_dims, (void*)IDL_TYP_STRING },
{ "SCALAR_IND", polynom_dims, (void*)IDL_TYP_INT },
Modified: trunk/getdata/bindings/idl/test/big_test.pro
===================================================================
--- trunk/getdata/bindings/idl/test/big_test.pro 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/idl/test/big_test.pro 2013-04-05 01:08:18 UTC (rev 825)
@@ -1295,7 +1295,7 @@
nume += check_simple2(228, 2, n.fragment, 0)
nume += check_simple2(228, 3, n.count_val, 1)
nume += check_simple2(228, 4, n.in_fields, [ 'data', 'sbit' ])
-nume += check_simple2(228, 5, n.count_max, 10)
+nume += check_simple2(228, 5, n.period, 10)
; 229: gd_add_mplex check
gd_add_mplex, d, 'new21', 'in1', 'in2', 5, max=6
@@ -1307,7 +1307,7 @@
nume += check_simple2(229, 2, n.fragment, 0)
nume += check_simple2(229, 3, n.count_val, 5)
nume += check_simple2(229, 4, n.in_fields, [ 'in1', 'in2' ])
-nume += check_simple2(229, 5, n.count_max, 6)
+nume += check_simple2(229, 5, n.period, 6)
; 230: gd_madd_mplex check
gd_add_mplex, d, parent='data', 'mnew21', 'in2', 'in3', 0, max=12
@@ -1319,11 +1319,11 @@
nume += check_simple2(230, 2, n.fragment, 0)
nume += check_simple2(230, 3, n.count_val, 0)
nume += check_simple2(230, 4, n.in_fields, [ 'in2', 'in3' ])
-nume += check_simple2(230, 5, n.count_max, 12)
+nume += check_simple2(230, 5, n.period, 12)
; 231: gd_alter_mplex check
gd_alter_mplex, d, 'new21', in_field='in3', count_field='in4', count_val=2, $
- count_max=7
+ period=7
nume += check_ok2(231, 1, d)
n = gd_entry(d, 'new21')
@@ -1332,7 +1332,7 @@
nume += check_simple2(231, 2, n.fragment, 0)
nume += check_simple2(231, 3, n.count_val, 2)
nume += check_simple2(231, 4, n.in_fields, [ 'in3', 'in4' ])
-nume += check_simple2(231, 5, n.count_max, 7)
+nume += check_simple2(231, 5, n.period, 7)
; 232: gd_strtok check
str = gd_strtok(d, STRING='"test1 test2" test3\ test4')
Modified: trunk/getdata/bindings/matlab/gd_add_mplex.m
===================================================================
--- trunk/getdata/bindings/matlab/gd_add_mplex.m 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/matlab/gd_add_mplex.m 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,5 +1,5 @@
function gd_add_mplex(D, field_code, in_field1, in_field2, count_val, ...
-count_max, fragment_index)
+period, fragment_index)
% GD_ADD_MPLEX Add a MPLEX field
%
% GD_ADD_MPLEX(DIRFILE,NAME,INPUT1,INPUT2,COUNT_VAL,COUNT_MAX,FRAGMENT)
@@ -19,7 +19,7 @@
GD = getdata_constants();
gd_add(D, struct('field', field_code, 'field_type', GD.MPLEX_ENTRY, ...
'fragment_index', fragment_index, 'in_fields', {{in_field1; in_field2}}, ...
- 'count_val', count_val, 'count_max', count_max));
+ 'count_val', count_val, 'period', period));
end
% Copyright (C) 2013 D. V. Wiebe
Modified: trunk/getdata/bindings/matlab/gd_alter_mplex.m
===================================================================
--- trunk/getdata/bindings/matlab/gd_alter_mplex.m 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/matlab/gd_alter_mplex.m 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,4 +1,4 @@
-function gd_alter_mplex(D, field_code, in1, in2, count_val, count_max)
+function gd_alter_mplex(D, field_code, in1, in2, count_val, period)
% GD_ALTER_MPLEX Modify the metadata of a MPLEX field
%
% GD_ALTER_MPLEX(DIRFILE,NAME,INPUT1,INPUT2,COUNT_VAL,COUNT_MAX)
@@ -17,7 +17,7 @@
GD = getdata_constants();
gd_alter_entry(D, field_code, struct('field_type', GD.MPLEX_ENTRY, ...
'in_fields', {{in1; in2}}, 'count_val', count_val, ...
- 'count_max', count_max), 0);
+ 'period', period), 0);
end
% Copyright (C) 2013 D. V. Wiebe
Modified: trunk/getdata/bindings/matlab/gd_madd_mplex.m
===================================================================
--- trunk/getdata/bindings/matlab/gd_madd_mplex.m 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/matlab/gd_madd_mplex.m 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,5 +1,5 @@
function gd_madd_mplex(D, parent, field_code, in_field1, in_field2, ...
-count_val, count_max)
+count_val, period)
% GD_MADD_MPLEX Add a MPLEX metafield
%
% GD_MADD_MPLEX(DIRFILE,PARENT,NAME,INPUT1,INPUT2,COUNT_VAL,COUNT_MAX)
@@ -18,7 +18,7 @@
GD = getdata_constants();
gd_madd(D, struct('field', field_code, 'field_type', GD.MPLEX_ENTRY, ...
'in_fields', {{in_field1; in_field2}}, 'count_val', count_val, ...
- 'count_max', count_max), parent);
+ 'period', period), parent);
end
% Copyright (C) 2013 D. V. Wiebe
Modified: trunk/getdata/bindings/matlab/matlab.c
===================================================================
--- trunk/getdata/bindings/matlab/matlab.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/matlab/matlab.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -843,7 +843,7 @@
const char *linterp_fields[] = {GDMX_COMMON_FIELDS, "in_fields", "table"};
const int mplex_nfields = GDMX_NSCALAR + 3;
const char *mplex_fields[] = {GDMX_COMMON_FIELDS, "in_fields", "count_val",
- "count_max", GDMX_SCALAR_FIELDS};
+ "period", GDMX_SCALAR_FIELDS};
const int multiply_nfields = 1;
const char *multiply_fields[] = {GDMX_COMMON_FIELDS, "in_fields"};
const int phase_nfields = GDMX_NSCALAR + 2;
@@ -975,7 +975,7 @@
mxSetField(lhs, 0, "in_fields",
gdmx_from_nstring_list((const char**)E->in_fields, 2));
mxSetField(lhs, 0, "count_val", gdmx_from_int(E->EN(mplex,count_val)));
- mxSetField(lhs, 0, "count_max", gdmx_from_int(E->EN(mplex,count_max)));
+ mxSetField(lhs, 0, "period", gdmx_from_int(E->EN(mplex,period)));
nscalar = 2;
break;
case GD_MULTIPLY_ENTRY:
@@ -1299,8 +1299,8 @@
gdmx_convert_in_fields(rhs[n], &ctx, E);
gdmx_convert_struct_scalar(rhs[n], &ctx, "count_val", GD_INT_TYPE,
&E->EN(mplex,count_val));
- gdmx_convert_struct_scalar(rhs[n], &ctx, "count_max", GD_INT_TYPE,
- &E->EN(mplex,count_max));
+ gdmx_convert_struct_scalar(rhs[n], &ctx, "period", GD_INT_TYPE,
+ &E->EN(mplex,period));
break;
case GD_PHASE_ENTRY:
gdmx_convert_in_fields(rhs[n], &ctx, E);
Modified: trunk/getdata/bindings/matlab/test/big_test.m
===================================================================
--- trunk/getdata/bindings/matlab/test/big_test.m 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/matlab/test/big_test.m 2013-04-05 01:08:18 UTC (rev 825)
@@ -1866,7 +1866,7 @@
ne = ne + check_num2(228, 3, d.fragment_index, 0);
ne = ne + check_sarray2(228, 4, d.in_fields, { 'data'; 'sbit' });
ne = ne + check_num2(228, 5, d.count_val, 1);
- ne = ne + check_num2(228, 6, d.count_max, 10);
+ ne = ne + check_num2(228, 6, d.period, 10);
catch exc
ne = ne + check_ok(exc, 228);
end
@@ -1885,7 +1885,7 @@
ne = ne + check_num2(229, 3, d.fragment_index, 0);
ne = ne + check_sarray2(229, 4, d.in_fields, { 'in1'; 'in2' });
ne = ne + check_num2(229, 5, d.count_val, 5);
- ne = ne + check_num2(229, 6, d.count_max, 6);
+ ne = ne + check_num2(229, 6, d.period, 6);
catch exc
ne = ne + check_ok2(exc, 229, 2);
end
@@ -1904,7 +1904,7 @@
ne = ne + check_num2(230, 3, d.fragment_index, 0);
ne = ne + check_sarray2(230, 4, d.in_fields, { 'in3'; 'in2' });
ne = ne + check_num2(230, 5, d.count_val, 0);
- ne = ne + check_num2(230, 6, d.count_max, 12);
+ ne = ne + check_num2(230, 6, d.period, 12);
catch exc
ne = ne + check_ok2(exc, 230, 2);
end
@@ -1923,7 +1923,7 @@
ne = ne + check_num2(231, 3, d.fragment_index, 0);
ne = ne + check_sarray2(231, 4, d.in_fields, { 'in4'; 'in2' });
ne = ne + check_num2(231, 5, d.count_val, 3);
- ne = ne + check_num2(231, 6, d.count_max, 7);
+ ne = ne + check_num2(231, 6, d.period, 7);
catch exc
ne = ne + check_ok2(exc, 231, 2);
end
Modified: trunk/getdata/bindings/perl/GetData.xs
===================================================================
--- trunk/getdata/bindings/perl/GetData.xs 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/perl/GetData.xs 2013-04-05 01:08:18 UTC (rev 825)
@@ -359,7 +359,7 @@
case GD_MPLEX_ENTRY:
gdp_fetch_in_fields(E->in_fields, sv, 2, pkg, func);
GDP_EHASH_FETCH_UV("count_val", EN(mplex,count_val), int);
- GDP_EHASH_FETCH_UV("count_max", EN(mplex,count_max), int);
+ GDP_EHASH_FETCH_UV("period", EN(mplex,period), int);
gdp_fetch_scalars(E, (HV*)sv, 0x3, pkg, func);
break;
case GD_RAW_ENTRY:
@@ -1243,8 +1243,8 @@
GDP_PUSHrvavpv(E.in_fields, 2);
GDP_PUSHpvn("count_val");
GDP_PUSHuv(E.EN(mplex,count_val));
- GDP_PUSHpvn("count_max");
- GDP_PUSHuv(E.EN(mplex,count_max));
+ GDP_PUSHpvn("period");
+ GDP_PUSHuv(E.EN(mplex,period));
sp = gdp_store_scalars(sp, &E, 0x3);
break;
case GD_INDEX_ENTRY:
Modified: trunk/getdata/bindings/perl/simple_funcs.xsin
===================================================================
--- trunk/getdata/bindings/perl/simple_funcs.xsin 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/perl/simple_funcs.xsin 2013-04-05 01:08:18 UTC (rev 825)
@@ -141,13 +141,13 @@
int alter_affixes(DIRFILE *dirfile, int index, gdpu_char *prefix,
gdpu_char *suffix=NULL)
int add_mplex(DIRFILE *dirfile, const char *field_code, const char *in_field,
- const char *count_field, int count_val, int count_max, int fragment_index=0)
+ const char *count_field, int count_val, int period, int fragment_index=0)
int alter_mplex(DIRFILE *dirfile, const char *field_code,
gdpu_char *in_field=NULL, gdpu_char *count_field=NULL, int count_val=-1,
- int count_max=-1)
+ int period=-1)
int madd_mplex(DIRFILE *dirfile, const char *parent, const char *field_code,
const char *in_field, const char *count_field, int count_val,
- int count_max)
+ int period)
int raw_close(DIRFILE *dirfile, const char *field_code)
int desync(DIRFILE *dirfile, unsigned int flags=0)
unsigned long int flags(DIRFILE *dirfile, unsigned long int set=0,
Modified: trunk/getdata/bindings/perl/t/big_test.t
===================================================================
--- trunk/getdata/bindings/perl/t/big_test.t 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/perl/t/big_test.t 2013-04-05 01:08:18 UTC (rev 825)
@@ -1621,7 +1621,7 @@
CheckNum2(228, 2, $h{"fragment_index"}, 0);
CheckNum2(228, 3, $h{"count_val"}, 1);
CheckSArray2(228, 4, $h{"in_fields"}, 'data', 'sbit');
-CheckNum2(228, 5, $h{"count_max"}, 10);
+CheckNum2(228, 5, $h{"period"}, 10);
# 229: gd_add_mplex check
$s = $_->add_mplex('new21', 'in1', 'in2', 5, 6, 0);
@@ -1633,7 +1633,7 @@
CheckNum2(229, 2, $h{"fragment_index"}, 0);
CheckNum2(229, 3, $h{"count_val"}, 5);
CheckSArray2(229, 4, $h{"in_fields"}, 'in1', 'in2');
-CheckNum2(229, 5, $h{"count_max"}, 6);
+CheckNum2(229, 5, $h{"period"}, 6);
# 230: gd_madd_mplex check
$s = $_->madd_mplex('data', 'mnew21', 'in2', 'in3', 0, 12);
@@ -1645,7 +1645,7 @@
CheckNum2(230, 2, $h{"fragment_index"}, 0);
CheckNum2(230, 3, $h{"count_val"}, 0);
CheckSArray2(230, 4, $h{"in_fields"}, 'in2', 'in3');
-CheckNum2(230, 5, $h{"count_max"}, 12);
+CheckNum2(230, 5, $h{"period"}, 12);
# 231: gd_alter_mplex check
$s = $_->alter_mplex('new21', 'in3', 'in4', -1, 7);
@@ -1657,7 +1657,7 @@
CheckNum2(231, 2, $h{"fragment_index"}, 0);
CheckNum2(231, 3, $h{"count_val"}, 5);
CheckSArray2(231, 4, $h{"in_fields"}, 'in3', 'in4');
-CheckNum2(231, 5, $h{"count_max"}, 7);
+CheckNum2(231, 5, $h{"period"}, 7);
# 232: gd_strtok check
@a = $_->strtok('"test1 test2" test3\ test4 test5');
Modified: trunk/getdata/bindings/python/pyentry.c
===================================================================
--- trunk/getdata/bindings/python/pyentry.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/python/pyentry.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -480,7 +480,7 @@
&E->scalar[0], &E->EN(mplex,count_val));
gdpy_set_scalar_from_pyobj(PyTuple_GetItem(tuple, 3), GD_INT_TYPE,
- &E->scalar[1], &E->EN(mplex,count_max));
+ &E->scalar[1], &E->EN(mplex,period));
break;
case GD_CARRAY_ENTRY:
E->EN(scalar,array_len) =
@@ -591,7 +591,7 @@
key[0] = "in_field1";
key[1] = "in_field2";
key[2] = "count_val";
- key[3] = "count_max";
+ key[3] = "period";
size = 4;
break;
case GD_CARRAY_ENTRY:
@@ -1713,7 +1713,7 @@
return 0;
}
-static PyObject *gdpy_entry_getcountmax(struct gdpy_entry_t *self,
+static PyObject *gdpy_entry_getperiod(struct gdpy_entry_t *self,
void *closure)
{
PyObject *obj = NULL;
@@ -1722,42 +1722,42 @@
if (self->E->field_type == GD_MPLEX_ENTRY) {
if (self->E->scalar[0] == NULL)
- obj = PyInt_FromLong(self->E->EN(mplex,count_max));
+ obj = PyInt_FromLong(self->E->EN(mplex,period));
else
obj = PyString_FromString(self->E->scalar[0]);
} else
PyErr_Format(PyExc_AttributeError, "'pygetdata.entry' "
- "attribute 'count_max' not available for entry type %s",
+ "attribute 'period' not available for entry type %s",
gdpy_entry_type_names[self->E->field_type]);
dreturn("%p", obj);
return obj;
}
-static int gdpy_entry_setcountmax(struct gdpy_entry_t *self, PyObject *value,
+static int gdpy_entry_setperiod(struct gdpy_entry_t *self, PyObject *value,
void *closure)
{
- int count_max;
+ int period;
char *scalar;
dtrace("%p, %p, %p", self, value, closure);
if (self->E->field_type != GD_MPLEX_ENTRY) {
PyErr_Format(PyExc_AttributeError, "'pygetdata.entry' "
- "attribute 'count_max' not available for entry type %s",
+ "attribute 'period' not available for entry type %s",
gdpy_entry_type_names[self->E->field_type]);
dreturn("%i", -1);
return -1;
}
- gdpy_set_scalar_from_pyobj(value, GD_INT_TYPE, &scalar, &count_max);
+ gdpy_set_scalar_from_pyobj(value, GD_INT_TYPE, &scalar, &period);
if (PyErr_Occurred()) {
dreturn("%i", -1);
return -1;
}
- self->E->EN(mplex,count_max) = count_max;
+ self->E->EN(mplex,period) = period;
free(self->E->scalar[1]);
self->E->scalar[1] = scalar;
@@ -2032,7 +2032,7 @@
case GD_MPLEX_ENTRY:
tuple = Py_BuildValue("(ssII)", self->E->in_fields[0],
self->E->in_fields[1], (unsigned int)self->E->EN(mplex,count_val),
- (unsigned int)self->E->EN(mplex,count_max));
+ (unsigned int)self->E->EN(mplex,period));
break;
}
@@ -2229,14 +2229,8 @@
{ "const_type", (getter)gdpy_entry_getdatatype,
(setter)gdpy_entry_setdatatype, "An alias for the data_type attribute.",
NULL },
- { "count_max", (getter)gdpy_entry_getcountmax, (setter)gdpy_entry_setcountmax,
- "The maximum value of the counter of a MPLEX field. If this is\n"
- "specified using a CONST scalar field, this will be the field code of\n"
- "that field, otherwise, it will be the number itself.",
- NULL },
{ "count_val", (getter)gdpy_entry_getcountval, (setter)gdpy_entry_setcountval,
"The target value of the counter of a MPLEX field. If this is\n"
- /* ------ handy ruler ----------------------------------------------| */
"specified using a CONST scalar field, this will be the field code of\n"
"that field, otherwise, it will be the number itself.",
NULL },
@@ -2321,6 +2315,13 @@
"dictionary, in which case it will be converted internally to the\n"
"corresponding parameters tuple.",
NULL },
+ { "period", (getter)gdpy_entry_getperiod, (setter)gdpy_entry_setperiod,
+ "The number of samples between successive occurrences of the MPLEX\n"
+ "value in the index vector (or zero, if unknown or not constant). If\n"
+ /* ------ handy ruler ----------------------------------------------| */
+ "this is specified using a CONST scalar field, this will be the field\n"
+ "code of that field, otherwise, it will be the number itself.",
+ NULL },
{ "poly_ord", (getter)gdpy_entry_getpolyord, (setter)gdpy_entry_setpolyord,
"The polynomial order of a POLYNOM field. Modifying this will change\n"
"the number of terms in the polynomial. If this number is increased,\n"
Modified: trunk/getdata/bindings/python/test/big_test.py
===================================================================
--- trunk/getdata/bindings/python/test/big_test.py 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/bindings/python/test/big_test.py 2013-04-05 01:08:18 UTC (rev 825)
@@ -1850,7 +1850,7 @@
CheckSimple2(228, 2, ent.fragment, 0)
CheckSimple2(228, 3, ent.count_val, 1)
CheckSimple2(228, 4, ent.in_fields, ( 'data', 'sbit' ))
-CheckSimple2(228, 5, ent.count_max, 10)
+CheckSimple2(228, 5, ent.period, 10)
# 229: gd_add_mplex check
ent = pygetdata.entry(pygetdata.MPLEX_ENTRY, "new21", 0, ("in1", "in2", 5, 6))
@@ -1867,7 +1867,7 @@
CheckSimple2(229, 2, ent.fragment, 0)
CheckSimple2(229, 3, ent.count_val, 5)
CheckSimple2(229, 4, ent.in_fields, ( 'in1', 'in2' ))
-CheckSimple2(229, 5, ent.count_max, 6)
+CheckSimple2(229, 5, ent.period, 6)
# 230: gd_madd_mplex check
ent = pygetdata.entry(pygetdata.MPLEX_ENTRY, "mnew21", 0, ("in2", "in3", 0, 12))
@@ -1884,11 +1884,11 @@
CheckSimple2(230, 2, ent.fragment, 0)
CheckSimple2(230, 3, ent.count_val, 0)
CheckSimple2(230, 4, ent.in_fields, ( 'in2', 'in3' ))
-CheckSimple2(230, 5, ent.count_max, 12)
+CheckSimple2(230, 5, ent.period, 12)
# 231: gd_alter_mplex check
ent = pygetdata.entry(pygetdata.MPLEX_ENTRY, "new21", 0, { "count_val": 3,
- "in_field1": "in3", "in_field2": "in4", "count_max": 7 })
+ "in_field1": "in3", "in_field2": "in4", "period": 7 })
try:
d.alter('new21', ent)
except:
@@ -1902,7 +1902,7 @@
CheckSimple2(231, 2, ent.fragment, 0)
CheckSimple2(231, 3, ent.count_val, 3)
CheckSimple2(231, 4, ent.in_fields, ( 'in3', 'in4' ))
-CheckSimple2(231, 5, ent.count_max, 7)
+CheckSimple2(231, 5, ent.period, 7)
# 232: gd_strtok check
try:
Modified: trunk/getdata/man/dirfile-format.5
===================================================================
--- trunk/getdata/man/dirfile-format.5 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/dirfile-format.5 2013-04-05 01:08:18 UTC (rev 825)
@@ -13,7 +13,7 @@
.\" Texts. A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
-.TH dirfile\-format 5 "12 July 2012" "Standards Version 9" "DATA FORMATS"
+.TH dirfile\-format 5 "3 April 2013" "Standards Version 9" "DATA FORMATS"
.SH NAME
dirfile\-format \(em the dirfile database format specification file
.SH DESCRIPTION
@@ -808,7 +808,7 @@
.IP
.I <fieldname>
.B MPLEX
-.I <input> <index> <count> \fR[\fI<max>\fR]
+.I <input> <index> <count> \fR[\fI<period>\fR]
.PP
where
.I input
@@ -819,18 +819,22 @@
is the value of the multiplex index when the computed field is stored in
.IR input ,
and
-.I max
-is the nominal maximum value which the multiplex index takes. If
-.I max
-is omitted, zero is assumed. If
-.I max
-is non-zero, the relation
-.IR count " <= " max
-must hold. Both
+.IR period ,
+if present and non-zero, is the number of samples between successive occurrances
+of the value
.I count
+in the index vector. A
+.I period
+of zero (or, equivalently, it's omission) indicates that either the value
+.I count
+is not equally spaced in the index vector, or else that the spacing is unknown.
+Both
+.I count
and
-.I max
-are non-negative integers.
+.I period
+are integers, and
+.I period
+may not be negative.
.PP
At every sample
.IR n ,
@@ -850,19 +854,19 @@
The values of
.I count
and
-.I max
+.I period
place no restrictions on values contained in
.IR index .
Specifically, samples of
.I index
may exceed
-.IR max .
+.IR period .
Particular values of
.I index
(including
.IR count )
need not be equally spaced (neither by
-.I max
+.I period
nor any other spacing);
.I index
need not ever take on the value
Modified: trunk/getdata/man/gd_add_bit.3
===================================================================
--- trunk/getdata/man/gd_add_bit.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_add_bit.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -62,7 +62,7 @@
.HP
.BI "int gd_add_mplex(DIRFILE *" dirfile ", const char *" field_name ,
.BI "const char *" in_field ", const char *" count_field ,
-.BI "int " count_val ", int " count_max ", int " fragment_index );
+.BI "int " count_val ", int " period ", int " fragment_index );
.HP
.BI "int gd_add_multiply(DIRFILE *" dirfile ", const char *" field_name ,
.BI "const char *" in_field1 ", const char *" in_field2 ,
Modified: trunk/getdata/man/gd_alter_bit.3
===================================================================
--- trunk/getdata/man/gd_alter_bit.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_alter_bit.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -56,7 +56,7 @@
.HP
.BI "int gd_alter_mplex(DIRFILE *" dirfile ", const char *" field_name ,
.BI "const char *" in_field ", const char *" count_field ,
-.BI "int " count_val ", int " count_max );
+.BI "int " count_val ", int " period );
.HP
.BI "int gd_alter_multiply(DIRFILE *" dirfile ", const char *" field_code ,
.BI "const char *" in_field1 ", const char *" in_field2 );
@@ -170,7 +170,7 @@
.IR spf ", " n_fields ", " numbits ", " cdividend ", or " dividend ;
.TP
.B -1\fR:
-.IR bitnum ", " count_val ", or " count_max ;
+.IR bitnum " or " period ;
.TP
.B GD_NULL\fR:
.IR data_type " or " const_type ;
Modified: trunk/getdata/man/gd_cbopen.3
===================================================================
--- trunk/getdata/man/gd_cbopen.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_cbopen.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,6 +1,6 @@
.\" gd_cbopen.3. The gd_cbopen man page.
.\"
-.\" Copyright (C) 2008, 2009, 2010, 2011, 2012 D. V. Wiebe
+.\" Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 D. V. Wiebe
.\"
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.\"
@@ -13,7 +13,7 @@
.\" Texts. A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
-.TH gd_cbopen 3 "1 April 2012" "Version 0.8.0" "GETDATA"
+.TH gd_cbopen 3 "3 April 2013" "Version 0.8.4" "GETDATA"
.SH NAME
gd_cbopen, gd_open \(em open or create a dirfile
.SH SYNOPSIS
@@ -514,8 +514,7 @@
An attempt was made to add a RAW metafield.
.TP
.B GD_E_FORMAT_MPLEXVAL
-A MPLEX specification has a negative count_max or count_val, or else had
-a positive count_max, and count_val was larger than it.
+A MPLEX specification has a negative period.
.TP
.B GD_E_FORMAT_N_FIELDS
The number of fields of a LINCOM field was out-of-range.
Modified: trunk/getdata/man/gd_entry.3
===================================================================
--- trunk/getdata/man/gd_entry.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_entry.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,6 +1,6 @@
.\" gd_entry.3. The gd_entry man page.
.\"
-.\" Copyright (C) 2008, 2009, 2010, 2011, 2012 D. V. Wiebe
+.\" Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 D. V. Wiebe
.\"
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.\"
@@ -13,7 +13,7 @@
.\" Texts. A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
-.TH gd_entry 3 "15 August 2012" "Version 0.8.1" "GETDATA"
+.TH gd_entry 3 "3 April 2013" "Version 0.8.4" "GETDATA"
.SH NAME
gd_entry \(em retrieve a dirfile field's metadata
.SH SYNOPSIS
@@ -240,7 +240,7 @@
fields, the first element corresponds to
.I count_val
and the second to
-.IR count_max .
+.IR period .
The remainder are uninitialised.
.IP \(bu
For
@@ -545,7 +545,7 @@
const char *in_fields[2]; /* input field codes */
int count_val; /* value of the multiplex index */
- int count_max; /* maximum of the multiplex index */
+ int period; /* samples between successive count_vals */
...
} gd_entry_t;
@@ -564,10 +564,12 @@
in the input field.
.PP
The
-.I count_max
-member is the maximum value of the multiplex index, or zero, if this is not
-specified. This is only used to determine how far to look back for a starting
-value for the output field; see
+.I period
+member is the number of samples between successive occurrances of
+.I count_val
+in the index vector, or zero, if this is not known or constant. This is only
+used to determine how far to look back for a starting value for the output
+field; see
.BR gd_mplex_lookback (3).
.SS MULTIPLY and DIVIDE Members
@@ -919,7 +921,7 @@
double|b[3]|double|u.lincom.b[3]
const char*|table|const char*|u.linterp.table
int|count_val|int|u.mplex.count_val
-int|count_max|int|u.mplex.count_max
+int|period|int|u.mplex.period
gd_shift_t|shift|gd_shift_t|u.phase.shift
int|poly_ord|int|u.polynom.poly_ord
double complex|ca[3]|double|u.polynom.ca[3][2]
@@ -930,8 +932,8 @@
double|dividend|double|u.recip.dividend
gd_type_t|const_type|gd_type_t|u.scalar.const_type
size_t|array_len|size_t|u.scalar.array_len
-gd_windop_t|count_val|gd_windop_t|u.window.windop
-gd_triplet_t|count_max|gd_triplet_t|u.window.threshold
+gd_windop_t|windop|gd_windop_t|u.window.windop
+gd_triplet_t|threshold|gd_triplet_t|u.window.threshold
.TE
.PP
In the case of complex valued data in the C89 API, the first element of the
Modified: trunk/getdata/man/gd_madd_bit.3
===================================================================
--- trunk/getdata/man/gd_madd_bit.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_madd_bit.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -65,7 +65,7 @@
.BI "int gd_madd_mplex(DIRFILE *" dirfile ,
.BI "const char *" parent ", const char *" field_name ,
.BI "const char *" in_field ", const char *" count_field ,
-.BI "int " count_val ", int " count_max );
+.BI "int " count_val ", int " period );
.HP
.BI "int gd_madd_multiply(DIRFILE *" dirfile ,
.BI "const char *" parent ", const char *" field_name ,
Modified: trunk/getdata/man/gd_mplex_lookback.3
===================================================================
--- trunk/getdata/man/gd_mplex_lookback.3 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/man/gd_mplex_lookback.3 2013-04-05 01:08:18 UTC (rev 825)
@@ -1,6 +1,6 @@
.\" gd_mplex_lookback.3. The gd_mplex_lookback man page.
.\"
-.\" Copyright (C) 2012 D. V. Wiebe
+.\" Copyright (C) 2012, 2013 D. V. Wiebe
.\"
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.\"
@@ -13,7 +13,7 @@
.\" Texts. A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
-.TH gd_mplex_lookback 3 "20 June 2012" "Version 0.8.0" "GETDATA"
+.TH gd_mplex_lookback 3 "3 April 2013" "Version 0.8.4" "GETDATA"
.SH NAME
gd_mplex_lookback \(em set the GetData lookback length for MPLEX fields.
.SH SYNOPSIS
@@ -61,30 +61,33 @@
Otherwise,
.I lookback
should be a positive number specifying the number of
-.I MPLEX cycles
-to search. Each
.B MPLEX
-field has its own MPLEX cycle length, measured in samples of the index field,
-which is defined as follows:
+periods to search. Each
+.B MPLEX
+field has its own period, measured in samples of the index field, which is
+defined as follows:
.IP \(bu
if the
.B MPLEX
field in question specifies an optional
-.I count_max
-positive parameter (see the MPLEX definition in dirfile-format(5)), its MPLEX
-cycle length is that many samples;
+.I period
+positive parameter (see the
+.B MPLEX
+definition in
+.BR dirfile-format (5)),
+its period is that many samples;
.IP \(bu
otherwise, if the
.B MPLEX
field's
.I count_val
-is at least five, its MPLEX cycle length is twice as many samples as that value;
+is at least five, its period is one more sample than twice that value;
.IP \(bu
-otherwise, the
+otherwise, the period is ten samples.
+.PP
+So, given the following
.B MPLEX
-cycle length is ten samples.
-.PP
-So, given the following MPLEX definitions:
+definitions:
.IP
field1 \fBMPLEX\fR data_field index_field 7 12
.br
@@ -95,22 +98,23 @@
field4 \fBMPLEX\fR data_field index_field 2
.PP
.I field1
-has a cycle length of 12 samples and
+has a period of 12 samples and
.I field2
-a cycle length of 6 samples (both the value of their
-.I count_max
+a period of 6 samples (both the value of their
+.I period
parameters);
.I field3
-has a cycle length of 14 samples (twice it's
+has a period of 15 samples (one more than twice it's
.IR count_val ),
and
.I field4
-has a cycle length of 10 samples (the default value, since its
+has a period of 10 samples (the default value, since its
.I count_val
is less than five).
.PP
-The initial value of the MPLEX lookback is ten cycles. This value is provided
-in getdata.h as
+The initial value of the
+.B MPLEX
+lookback is ten periods. This value is provided in getdata.h as
.BR GD_DEFAULT_LOOKBACK .
This function always succeeds and returns no value.
Modified: trunk/getdata/src/add.c
===================================================================
--- trunk/getdata/src/add.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/add.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -428,7 +428,7 @@
break;
case GD_MPLEX_ENTRY:
E->EN(mplex,count_val) = entry->EN(mplex,count_val);
- E->EN(mplex,count_max) = entry->EN(mplex,count_max);
+ E->EN(mplex,period) = entry->EN(mplex,period);
if (_GD_CheckCodeAffixes(D, NULL, entry->in_fields[0],
entry->fragment_index) || _GD_CheckCodeAffixes(D, NULL,
@@ -441,15 +441,13 @@
E->in_fields[1] = _GD_Strdup(D, entry->in_fields[1]);
E->e->u.mplex.type = GD_NULL;
- if (entry->EN(mplex,count_max) < 0)
- _GD_SetError(D, GD_E_BAD_ENTRY, GD_E_ENTRY_CNTMAX, NULL,
- entry->EN(mplex,count_max), NULL);
- else if (entry->EN(mplex,count_max) > 0 &&
- entry->EN(mplex,count_val) >= entry->EN(mplex,count_max))
- {
+ if (entry->EN(mplex,period) < 0)
+ _GD_SetError(D, GD_E_BAD_ENTRY, GD_E_ENTRY_PERIOD, NULL,
+ entry->EN(mplex,period), NULL);
+ else if (entry->EN(mplex,count_val) < 0)
_GD_SetError(D, GD_E_BAD_ENTRY, GD_E_ENTRY_CNTVAL, NULL,
entry->EN(mplex,count_val), NULL);
- }
+
copy_scalar[0] = copy_scalar[1] = 1;
break;
case GD_CONST_ENTRY:
@@ -1274,14 +1272,14 @@
/* add a MPLEX entry */
int gd_add_mplex(DIRFILE *D, const char *field_code, const char *in_field,
- const char *count_field, int count_val, int count_max, int fragment_index)
+ const char *count_field, int count_val, int period, int fragment_index)
gd_nothrow
{
gd_entry_t E;
int error;
dtrace("%p, \"%s\", \"%s\", \"%s\", %i, %i, %i", D, field_code, in_field,
- count_field, count_val, count_max, fragment_index);
+ count_field, count_val, period, fragment_index);
if (D->flags & GD_INVALID) {/* don't crash */
_GD_SetError(D, GD_E_BAD_DIRFILE, 0, NULL, 0, NULL);
@@ -1293,7 +1291,7 @@
E.field = (char *)field_code;
E.field_type = GD_MPLEX_ENTRY;
E.EN(mplex,count_val) = count_val;
- E.EN(mplex,count_max) = count_max;
+ E.EN(mplex,period) = period;
E.in_fields[0] = (char *)in_field;
E.in_fields[1] = (char *)count_field;
E.fragment_index = fragment_index;
@@ -1871,14 +1869,14 @@
/* add a META MPLEX entry */
int gd_madd_mplex(DIRFILE *D, const char *parent, const char *field_code,
- const char *in_field, const char *count_field, int count_val, int count_max)
+ const char *in_field, const char *count_field, int count_val, int period)
gd_nothrow
{
int error;
gd_entry_t E;
dtrace("%p, \"%s\", \"%s\", \"%s\", \"%s\", %i, %i", D, parent, field_code,
- in_field, count_field, count_val, count_max);
+ in_field, count_field, count_val, period);
if (D->flags & GD_INVALID) {/* don't crash */
_GD_SetError(D, GD_E_BAD_DIRFILE, 0, NULL, 0, NULL);
@@ -1890,7 +1888,7 @@
E.field = (char *)field_code;
E.field_type = GD_MPLEX_ENTRY;
E.EN(mplex,count_val) = count_val;
- E.EN(mplex,count_max) = count_max;
+ E.EN(mplex,period) = period;
E.in_fields[0] = (char *)in_field;
E.in_fields[1] = (char *)count_field;
error = (_GD_Add(D, &E, parent) == NULL) ? -1 : 0;
Modified: trunk/getdata/src/del.c
===================================================================
--- trunk/getdata/src/del.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/del.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -204,7 +204,7 @@
_GD_DeReferenceOne(D, E, C, check, 0, GD_INT_TYPE,
&E->EN(mplex,count_val));
_GD_DeReferenceOne(D, E, C, check, 1, GD_INT_TYPE,
- &E->EN(mplex,count_max));
+ &E->EN(mplex,period));
break;
case GD_NO_ENTRY:
case GD_LINTERP_ENTRY:
Modified: trunk/getdata/src/entry.c
===================================================================
--- trunk/getdata/src/entry.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/entry.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -274,7 +274,7 @@
break;
case GD_MPLEX_ENTRY:
_GD_GetScalar(D, E, 0, GD_INT_TYPE, &E->EN(mplex,count_val), err);
- _GD_GetScalar(D, E, 1, GD_INT_TYPE, &E->EN(mplex,count_max), err);
+ _GD_GetScalar(D, E, 1, GD_INT_TYPE, &E->EN(mplex,period), err);
break;
case GD_NO_ENTRY:
case GD_LINTERP_ENTRY:
Modified: trunk/getdata/src/errors.c
===================================================================
--- trunk/getdata/src/errors.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/errors.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -78,7 +78,7 @@
{ GD_E_FORMAT, GD_E_FORMAT_ALIAS,
"Cannot use alias {4} as parent to a meta field on line {3} of {2}", 0 },
{ GD_E_FORMAT, GD_E_FORMAT_MPLEXVAL,
- "Count value ({4}) exceeds maximum on line {3} of {2}", 0 },
+ "Bad MPLEX period ({4}) on line {3} of {2}", 0 },
/* GD_E_TRUNC: 1 = suberror, 2 = filename. 3 = errno */
{ GD_E_TRUNC, 0, "Error truncating {2}: ", 1 },
/* GD_E_CREAT: 1 = suberror, 2 = filename, 3 = errno */
@@ -139,7 +139,7 @@
{ GD_E_BAD_ENTRY, GD_E_ENTRY_POLYORD, "POLYNOM order out of range: {3}", 0 },
{ GD_E_BAD_ENTRY, GD_E_ENTRY_WINDOP, "Unrecognised WINDOW operator: {3}", 0 },
{ GD_E_BAD_ENTRY, GD_E_ENTRY_CNTVAL, "Count value out of range: {3}", 0 },
- { GD_E_BAD_ENTRY, GD_E_ENTRY_CNTMAX, "Count max out of range: {3}", 0 },
+ { GD_E_BAD_ENTRY, GD_E_ENTRY_PERIOD, "MPLEX period out of range: {3}", 0 },
/* GD_E_DUPLICATE: 4 = name */
{ GD_E_DUPLICATE, 0, "Field code already present: {4}", 0 },
/* GD_E_DIMENSION: 2 = parent field (if any), 4 = field code */
Modified: trunk/getdata/src/flush.c
===================================================================
--- trunk/getdata/src/flush.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/flush.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -534,10 +534,10 @@
fputc(' ', stream);
_GD_WriteConst(D, stream, me, permissive, GD_INT_TYPE,
&E->EN(mplex,count_val), E->scalar[0], E->scalar_ind[0], "");
- if (E->EN(mplex,count_max) > 0 || E->scalar[1]) {
+ if (E->EN(mplex,period) > 0 || E->scalar[1]) {
fputc(' ', stream);
_GD_WriteConst(D, stream, me, permissive, GD_INT_TYPE,
- &E->EN(mplex,count_max), E->scalar[1], E->scalar_ind[1], "\n");
+ &E->EN(mplex,period), E->scalar[1], E->scalar_ind[1], "\n");
} else
fputc('\n', stream);
break;
Modified: trunk/getdata/src/getdata.c
===================================================================
--- trunk/getdata/src/getdata.c 2013-03-19 20:22:16 UTC (rev 824)
+++ trunk/getdata/src/getdata.c 2013-04-05 01:08:18 UTC (rev 825)
@@ -1696,15 +1696,14 @@
else if (tmpbuf[0] != E->EN(mplex,count_val) && D->lookback) {
/* It wasn't -- do a look-back to find the start value. On a, say, gzipped
* field this is expensive sin...
[truncated message content] |