[SCM] ruby-netcdf branch, master, updated. 17a746c4cce347676a620472b63a90e21f82ec08
Youhei SASAKI
uwabami at gfd-dennou.org
Tue Feb 22 07:02:01 UTC 2011
The following commit has been merged in the master branch:
commit 2dcc65ebf064ca21de8db6dcb5250d0b64f30aa5
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date: Thu Feb 17 18:29:55 2011 +0900
Imported Upstream version 0.6.5
diff --git a/ChangeLog b/ChangeLog
index 1adf9ce..cee61b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+Thu Feb 17 2011 T Horinouchi
+ * ruby-netcdf-0.6.5 released (relase tag: ruby-netcdf-0_6_5)
+Thu Feb 17 2011 T Horinouchi
+ * extconf.rb: Debug to have the --disable-opendap option really work
+Sat Feb 12 2011 T Horinouchi
+ * ruby-netcdf-0.6.5 preview release.
+Thu Dec 23 2010 T Koshiro
+ * test/aref_aset.rb : updated for Ruby 1.9.2
+ * lib/netcdf.rb: NetCDF.clean_tmpfile : lambda -> proc
+ * verified that all test programs work fine with Ruby 1.9.2.
+
+Tue Dec 14 2010 T Koshiro
+ * netcdfraw.c : nctype2natype : char* -> const char*
+ * test/aref_aset.rb, test/factor_offset.rb : bug fix.
+
+Mon Dec 13 2010 T Koshiro
+ * netcdfraw.c : patch for Ruby 1.9.2
+ - by S Kouketsu (dennou-ruby:003191)
+ - by T Koshiro (dennou-ruby:003226)
+
Mon Mar 15 2010 T Horinouchi
* ruby-netcdf-0.6.4 released (relase tag: ruby-netcdf-0_6_4)
diff --git a/extconf.rb b/extconf.rb
index ff42f7e..da90b7c 100644
--- a/extconf.rb
+++ b/extconf.rb
@@ -27,8 +27,8 @@ elsif xsystem("opendap-config --libs")
prefix_dods = `opendap-config --prefix`.gsub(/\n/, "")
end
-if (enable_config('opendap',true) && ( xsystem("opendap-config --libs")) ||
- xsystem("ncdap-config --libs") )
+if (enable_config('opendap',true) && ( xsystem("opendap-config --libs") ||
+ xsystem("ncdap-config --libs") ) )
dir_config(libncdods,prefix_dods)
diff --git a/lib/netcdf.rb b/lib/netcdf.rb
index 3c26da4..6ff50bf 100644
--- a/lib/netcdf.rb
+++ b/lib/netcdf.rb
@@ -70,7 +70,7 @@ module NumRu
class << NetCDF
def clean_tmpfile(path)
- lambda{
+ proc {
print "removing ", path, "..." if $DEBUG
if File.exist?(path)
File.unlink(path)
diff --git a/netcdfraw.c b/netcdfraw.c
index c8e9797..6ecc045 100644
--- a/netcdfraw.c
+++ b/netcdfraw.c
@@ -6,16 +6,22 @@
/* for compatibility with ruby 1.6 */
#ifndef RSTRING_PTR
-#define RSTRING_PTR(a) (RSTRING(a)->ptr)
+#define RSTRING_PTR(s) (RSTRING(s)->ptr)
#endif
#ifndef RSTRING_LEN
-#define RSTRING_LEN(a) (RSTRING(a)->len)
+#define RSTRING_LEN(s) (RSTRING(s)->len)
#endif
#ifndef RARRAY_PTR
-#define RARRAY_PTR(s) (RARRAY(s)->ptr)
+#define RARRAY_PTR(a) (RARRAY(a)->ptr)
#endif
#ifndef RARRAY_LEN
-#define RARRAY_LEN(s) (RARRAY(s)->len)
+#define RARRAY_LEN(a) (RARRAY(a)->len)
+#endif
+#ifndef StringValueCStr
+#define StringValueCStr(s) STR2CSTR(s)
+#endif
+#ifndef SafeStringValue
+#define SafeStringValue(s) Check_SafeStr(s)
#endif
/* Data to NArray */
@@ -345,7 +351,7 @@ NetCDF_free(struct Netcdf *Netcdffile)
}
static VALUE
-err_status2class(status)
+err_status2class(int status)
{
if(NC_ISSYSERR(status)){
return(rb_eNetcdfSyserr);
@@ -421,7 +427,7 @@ err_status2class(status)
}
}
-static char*
+static const char*
nctype2natype(int nctype){
switch(nctype){
case NC_CHAR:
@@ -677,7 +683,7 @@ NetCDF_put_att_numeric(int ncid, char *name,VALUE value,VALUE atttype, int varid
ptr = na_val->ptr;
switch(na_typecode){
case NA_BYTE:
- status = nc_put_att_uchar(ncid,varid,name,NC_BYTE,len,ptr);
+ status = nc_put_att_uchar(ncid,varid,name,NC_BYTE,len,(unsigned char *)ptr);
break;
case NA_SINT:
status = nc_put_att_short(ncid,varid,name,NC_SHORT,len,(short *)ptr);
@@ -794,7 +800,7 @@ NetCDF_def_var(VALUE file,VALUE var_name,VALUE vartype,VALUE dimensions)
switch(TYPE(RARRAY_PTR(dimensions)[c_ndims-1-i])){
case T_STRING:
Check_Type(RARRAY_PTR(dimensions)[c_ndims-1-i],T_STRING);
- c_dim_name=STR2CSTR(RARRAY_PTR(dimensions)[c_ndims-1-i]);
+ c_dim_name=StringValueCStr(RARRAY_PTR(dimensions)[c_ndims-1-i]);
status=nc_inq_dimid(ncid,c_dim_name,&dimidp);
if(status != NC_NOERR) NC_RAISE(status);
c_dimids[i]=dimidp;
@@ -1021,7 +1027,7 @@ NetCDF_open(VALUE mod,VALUE filename,VALUE omode)
VALUE retval;
Check_Type(filename,T_STRING);
- Check_SafeStr(filename);
+ SafeStringValue(filename);
c_filename=RSTRING_PTR(filename);
Check_Type(omode,T_FIXNUM);
c_omode=NUM2INT(omode);
@@ -1044,7 +1050,7 @@ NetCDF_create(VALUE mod,VALUE filename,VALUE cmode)
struct Netcdf *ncfile;
Check_Type(filename,T_STRING);
- Check_SafeStr(filename);
+ SafeStringValue(filename);
c_filename=RSTRING_PTR(filename);
Check_Type(cmode,T_FIXNUM);
c_cmode=NUM2INT(cmode);
@@ -1194,7 +1200,7 @@ NetCDF_dim_name(VALUE Dim,VALUE dimension_newname)
ncid=Netcdf_dim->ncid;
dimid=Netcdf_dim->dimid;
Check_Type(dimension_newname,T_STRING);
- c_dim_name = STR2CSTR(dimension_newname);
+ c_dim_name = StringValueCStr(dimension_newname);
status = nc_rename_dim(ncid,dimid,c_dim_name);
if(status !=NC_NOERR) NC_RAISE(status);
@@ -1268,19 +1274,17 @@ NetCDF_att_rename(VALUE Att,VALUE new_att_name)
Data_Get_Struct(Att,struct NetCDFAtt,Netcdf_att);
ncid=Netcdf_att->ncid;
varid=Netcdf_att->varid;
- c_att_name=ALLOCA_N(char,NC_MAX_NAME);
- c_new_att_name=ALLOC_N(char,NC_MAX_NAME);
c_att_name=Netcdf_att->name;
Check_Type(new_att_name,T_STRING);
- Check_SafeStr(new_att_name);
- c_new_att_name=STR2CSTR(new_att_name);
+ SafeStringValue(new_att_name);
+ c_new_att_name=StringValueCStr(new_att_name);
status = nc_rename_att(ncid,varid,c_att_name,c_new_att_name);
if(status != NC_NOERR) NC_RAISE(status);
- Netcdf_att->name=c_new_att_name;
+ strcpy(Netcdf_att->name,c_new_att_name);
return Qnil;
}
@@ -1472,7 +1476,7 @@ NetCDF_att_atttype(VALUE Att)
int varid;
int status;
char *att_name;
- char *Attname;
+ const char *Attname;
struct NetCDFAtt *Netcdf_att;
nc_type xtypep;
@@ -1706,7 +1710,7 @@ NetCDF_var_vartype(VALUE Var)
int varid;
nc_type xtypep;
struct NetCDFVar *Netcdf_var;
- char *Vartype;
+ const char *Vartype;
Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
@@ -1789,7 +1793,7 @@ NetCDF_var_rename(VALUE Var,VALUE var_new_name)
varid=Netcdf_var->varid;
Check_Type(var_new_name,T_STRING);
- c_var_new_name=STR2CSTR(var_new_name);
+ c_var_new_name=StringValueCStr(var_new_name);
status = nc_rename_var(ncid,varid,c_var_new_name);
if(status !=NC_NOERR) NC_RAISE(status);
@@ -1815,7 +1819,7 @@ NetCDF_var_att(VALUE Var,VALUE att_name)
varid=Netcdf_var->varid;
Check_Type(att_name,T_STRING);
- c_att_name=STR2CSTR(att_name);
+ c_att_name=StringValueCStr(att_name);
status = nc_inq_attid(ncid,varid,c_att_name,&c_attnump);
if(status == NC_NOERR){
@@ -1957,7 +1961,7 @@ NetCDF_get_var_char(VALUE Var)
Cbyte_to_NArray(NArray,ndimsp,shape,ptr);
- status = nc_get_var_text(ncid,varid,ptr);
+ status = nc_get_var_text(ncid,varid,(char *)ptr);
if(status != NC_NOERR) NC_RAISE(status);
OBJ_TAINT(NArray);
@@ -2238,7 +2242,7 @@ NetCDF_get_var1_char(VALUE Var,VALUE start)
Cbyte_to_NArray(NArray,ndims,c_count,ptr);
- status = nc_get_var1_text(ncid,varid,c_start,ptr);
+ status = nc_get_var1_text(ncid,varid,c_start,(char *)ptr);
if(status != NC_NOERR) NC_RAISE(status);
OBJ_TAINT(NArray);
@@ -2645,7 +2649,7 @@ NetCDF_get_vars_char(VALUE Var,VALUE start,VALUE end,VALUE stride)
Cbyte_to_NArray(NArray,ndims,shape,ptr);
- status = nc_get_vars_text(ncid,varid,c_start,c_count,c_stride,ptr);
+ status = nc_get_vars_text(ncid,varid,c_start,c_count,c_stride,(char *)ptr);
if(status != NC_NOERR) NC_RAISE(status);
OBJ_TAINT(NArray);
@@ -3256,7 +3260,7 @@ NetCDF_put_var_char(VALUE Var,VALUE NArray)
if(status != NC_NOERR) NC_RAISE(status );
rb_raise(rb_eNetcdfError,"Length of NArray don't equal to length of total array in the '%s'\n",var_name);
}
- status = nc_put_var_text(ncid,varid,ptr);
+ status = nc_put_var_text(ncid,varid,(char *)ptr);
if(status !=NC_NOERR) NC_RAISE(status);
return Qnil;
}
@@ -3539,7 +3543,7 @@ NetCDF_put_var1_char(VALUE Var,VALUE NArray,VALUE start)
}
Array_to_Cbyte(NArray,ptr);
- status = nc_put_var1_text(ncid,varid,c_start,ptr);
+ status = nc_put_var1_text(ncid,varid,c_start,(char *)ptr);
if(status != NC_NOERR) NC_RAISE(status);
return Qnil;
}
@@ -3900,7 +3904,7 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
}
}
- status = nc_put_vars_text(ncid,varid,c_start,c_count,c_stride,ptr);
+ status = nc_put_vars_text(ncid,varid,c_start,c_count,c_stride,(char *)ptr);
if(status != NC_NOERR) NC_RAISE(status);
return Qnil;
}
diff --git a/test/aref_aset.rb b/test/aref_aset.rb
index ef4f059..4ba3456 100644
--- a/test/aref_aset.rb
+++ b/test/aref_aset.rb
@@ -11,7 +11,7 @@ vxy = f.def_var('xy','sfloat',[dx,dy])
f.enddef
v.put([1,2,3,4,5])
p 'testing []= ...'
-v[{0..3,2}]=[100,500]
+v[{0..3=>2}]=[100,500]
v[1]=999
v[3..4]=[-99,-99]
v2.put(666)
@@ -26,10 +26,11 @@ f.close
f = NetCDF.open(s)
v = f.var('x')
p 'testing [] ...'
-p '*0*',v[{0..3,2}]
+p '*0*',v[{0..3=>2}]
p '*1*',v[1]
p '*2*',v[3..4],v.rank
p '*3*',v[[2,0,0]]
+vxy = f.var('xy')
p '*4*',vxy[[2,0],[0,2,1]]
p '*5*',vxy[1,[2,0,1]]
p '*6*',vxy[[4,3],2]
diff --git a/test/factor_offset.rb b/test/factor_offset.rb
index 0ef7f8c..3312327 100644
--- a/test/factor_offset.rb
+++ b/test/factor_offset.rb
@@ -44,10 +44,10 @@ v32 = v3.scaled_get
p v31
p v32
-print "** scaled_get type fixed to sfloat\n"
-NetCDFVar.scaled_get_type = NArray::SFLOAT
+print "** unpack type fixed to sfloat\n"
+NetCDFVar.unpack_type = NArray::SFLOAT
v33 = v3.scaled_get
p v33
-NetCDFVar.scaled_get_type = NArray::INT
+NetCDFVar.unpack_type = NArray::INT
v33 = v3.scaled_get
p v33
--
Ruby interface of NetCDF library
More information about the Pkg-grass-devel
mailing list