@@ -1968,15 +1968,22 @@ int NXXcompress(NXhandle fid, int comp){
19681968/*--------------------------------------------------------------------*/
19691969NXstatus NXXputattra (NXhandle handle , CONSTCHAR * name , const void * data , const int rank , const int dim [], const int iType )
19701970{
1971- NXReportError ("This is an XML file, attribute array API is not supported here" );
1972- return NX_ERROR ;
1971+ if (rank > 1 ) {
1972+ NXReportError ("This is an XML file, there is only rudimentary support for attribute arrays wirh rank <=1" );
1973+ return NX_ERROR ;
1974+ }
1975+
1976+ return NXXputattr (handle , name , data , dim [0 ], iType );
19731977}
19741978
19751979/*--------------------------------------------------------------------*/
19761980NXstatus NXXgetnextattra (NXhandle handle , NXname pName , int * rank , int dim [], int * iType )
19771981{
1978- NXReportError ("This is an XML file, attribute array API is not supported here" );
1979- return NX_ERROR ;
1982+ NXstatus ret = NXXgetnextattr (handle , pName , dim , iType );
1983+ if (ret != NX_OK ) return ret ;
1984+ (* rank ) = 1 ;
1985+ if (dim [0 ] <= 1 ) (* rank ) = 0 ;
1986+ return NX_OK ;
19801987}
19811988
19821989/*--------------------------------------------------------------------*/
@@ -1996,7 +2003,7 @@ NXstatus NXXgetattrainfo(NXhandle handle, NXname pName, int *rank, int dim[], i
19962003/*----------------------------------------------------------------------*/
19972004void NXXassignFunctions (pNexusFunction fHandle ){
19982005 fHandle -> nxclose = NXXclose ;
1999- fHandle -> nxreopen = NULL ;
2006+ fHandle -> nxreopen = NULL ;
20002007 fHandle -> nxflush = NXXflush ;
20012008 fHandle -> nxmakegroup = NXXmakegroup ;
20022009 fHandle -> nxopengroup = NXXopengroup ;
@@ -2027,10 +2034,10 @@ void NXXassignFunctions(pNexusFunction fHandle){
20272034 fHandle -> nxsetnumberformat = NXXsetnumberformat ;
20282035 fHandle -> nxprintlink = NXXprintlink ;
20292036 fHandle -> nxnativeexternallink = NULL ;
2030- fHandle -> nxputattra = NXXputattra ;
2031- fHandle -> nxgetnextattra = NXXgetnextattra ;
2032- fHandle -> nxgetattra = NXXgetattra ;
2033- fHandle -> nxgetattrainfo = NXXgetattrainfo ;
2037+ fHandle -> nxputattra = NXXputattra ;
2038+ fHandle -> nxgetnextattra = NXXgetnextattra ;
2039+ fHandle -> nxgetattra = NXXgetattra ;
2040+ fHandle -> nxgetattrainfo = NXXgetattrainfo ;
20342041}
20352042
20362043#endif /*NXXML*/
0 commit comments