98 |
|
ip->ncols = atoi(s+6); |
99 |
|
return(0); |
100 |
|
} |
101 |
+ |
if ((i = isbigendian(s)) >= 0) { |
102 |
+ |
ip->swapin = (nativebigendian() != i); |
103 |
+ |
return(0); |
104 |
+ |
} |
105 |
|
if (!formatval(fmt, s)) { |
106 |
|
rmx_addinfo(ip, s); |
107 |
|
return(0); |
141 |
|
for (j = 0; j < rm->ncols; j++) { |
142 |
|
if (getbinary(val, sizeof(val[0]), rm->ncomp, fp) != rm->ncomp) |
143 |
|
return(0); |
144 |
+ |
if (rm->swapin) |
145 |
+ |
swap32((char *)val, rm->ncomp); |
146 |
|
for (k = rm->ncomp; k--; ) |
147 |
|
rmx_lval(rm,i,j,k) = val[k]; |
148 |
|
} |
155 |
|
int i, j; |
156 |
|
|
157 |
|
for (i = 0; i < rm->nrows; i++) |
158 |
< |
for (j = 0; j < rm->ncols; j++) |
158 |
> |
for (j = 0; j < rm->ncols; j++) { |
159 |
|
if (getbinary(&rmx_lval(rm,i,j,0), sizeof(double), rm->ncomp, fp) != rm->ncomp) |
160 |
|
return(0); |
161 |
+ |
if (rm->swapin) |
162 |
+ |
swap64((char *)&rmx_lval(rm,i,j,0), rm->ncomp); |
163 |
+ |
} |
164 |
|
return(1); |
165 |
|
} |
166 |
|
|
226 |
|
#endif |
227 |
|
dinfo.nrows = dinfo.ncols = dinfo.ncomp = 0; |
228 |
|
dinfo.dtype = DTascii; /* assumed w/o FORMAT */ |
229 |
+ |
dinfo.swapin = 0; |
230 |
|
dinfo.info = NULL; |
231 |
|
if (getheader(fp, get_dminfo, &dinfo) < 0) { |
232 |
|
fclose(fp); |
259 |
|
dnew->dtype = DTascii; /* should leave double? */ |
260 |
|
break; |
261 |
|
case DTfloat: |
262 |
+ |
dnew->swapin = dinfo.swapin; |
263 |
|
if (!rmx_load_float(dnew, fp)) |
264 |
|
goto loaderr; |
265 |
|
dnew->dtype = DTfloat; |
266 |
|
break; |
267 |
|
case DTdouble: |
268 |
+ |
dnew->swapin = dinfo.swapin; |
269 |
|
if (!rmx_load_double(dnew, fp)) |
270 |
|
goto loaderr; |
271 |
|
dnew->dtype = DTdouble; |
407 |
|
return(0); |
408 |
|
rm = mydm; |
409 |
|
} |
410 |
+ |
if ((dtype == DTfloat) | (dtype == DTdouble)) |
411 |
+ |
fputendian(fp); /* important to record */ |
412 |
|
fputformat((char *)cm_fmt_id[dtype], fp); |
413 |
|
fputc('\n', fp); |
414 |
|
switch (dtype) { /* write data */ |