diff options
author | Larry Wall <larry@netlabs.com> | 1994-03-18 00:00:00 +0000 |
---|---|---|
committer | Larry Wall <larry@netlabs.com> | 1994-03-18 00:00:00 +0000 |
commit | 8990e3071044a96302560bbdb5706f3e74cf1bef (patch) | |
tree | 6cf4a58108544204591f25bd2d4f1801d49334b4 /NDBM_File.c | |
parent | ed6116ce9b9d13712ea252ee248b0400653db7f9 (diff) | |
download | perl-8990e3071044a96302560bbdb5706f3e74cf1bef.tar.gz |
perl 5.0 alpha 6
[editor's note: cleaned up from the September '94 InfoMagic CD, just
like the last commit]
Diffstat (limited to 'NDBM_File.c')
-rw-r--r-- | NDBM_File.c | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/NDBM_File.c b/NDBM_File.c index 304053422a..5f29958822 100644 --- a/NDBM_File.c +++ b/NDBM_File.c @@ -8,12 +8,12 @@ typedef DBM* NDBM_File; #define nextkey(db,key) dbm_nextkey(db) static int -XS_NDBM_File_dbm_new(ix, sp, items) +XS_NDBM_File_dbm_new(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 4 || items > 4) { + if (items != 4) { croak("Usage: NDBM_File::new(dbtype, filename, flags, mode)"); } { @@ -24,40 +24,40 @@ register int items; NDBM_File RETVAL; RETVAL = dbm_new(dbtype, filename, flags, mode); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setptrobj(ST(0), RETVAL, "NDBM_File"); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_DESTROY(ix, sp, items) +XS_NDBM_File_dbm_DESTROY(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 1 || items > 1) { + if (items != 1) { croak("Usage: NDBM_File::DESTROY(db)"); } { NDBM_File db; - if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + if (SvROK(ST(1))) + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else - croak("db is not of type NDBM_File"); + croak("db is not a reference"); dbm_close(db); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_fetch(ix, sp, items) +XS_NDBM_File_dbm_fetch(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 2 || items > 2) { + if (items != 2) { croak("Usage: NDBM_File::fetch(db, key)"); } { @@ -66,23 +66,23 @@ register int items; datum RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); key.dptr = SvPV(ST(2), key.dsize);; RETVAL = dbm_fetch(db, key); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setpvn(ST(0), RETVAL.dptr, RETVAL.dsize); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_store(ix, sp, items) +XS_NDBM_File_dbm_store(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { if (items < 3 || items > 4) { @@ -96,7 +96,7 @@ register int items; int RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); @@ -111,19 +111,19 @@ register int items; } RETVAL = dbm_store(db, key, value, flags); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setiv(ST(0), (I32)RETVAL); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_delete(ix, sp, items) +XS_NDBM_File_dbm_delete(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 2 || items > 2) { + if (items != 2) { croak("Usage: NDBM_File::delete(db, key)"); } { @@ -132,26 +132,26 @@ register int items; int RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); key.dptr = SvPV(ST(2), key.dsize);; RETVAL = dbm_delete(db, key); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setiv(ST(0), (I32)RETVAL); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_firstkey(ix, sp, items) +XS_NDBM_File_dbm_firstkey(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 1 || items > 1) { + if (items != 1) { croak("Usage: NDBM_File::firstkey(db)"); } { @@ -159,24 +159,24 @@ register int items; datum RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); RETVAL = dbm_firstkey(db); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setpvn(ST(0), RETVAL.dptr, RETVAL.dsize); } - return sp; + return ax; } static int -XS_NDBM_File_nextkey(ix, sp, items) +XS_NDBM_File_nextkey(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 2 || items > 2) { + if (items != 2) { croak("Usage: NDBM_File::nextkey(db, key)"); } { @@ -185,26 +185,26 @@ register int items; datum RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); key.dptr = SvPV(ST(2), key.dsize);; RETVAL = nextkey(db, key); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setpvn(ST(0), RETVAL.dptr, RETVAL.dsize); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_error(ix, sp, items) +XS_NDBM_File_dbm_error(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 1 || items > 1) { + if (items != 1) { croak("Usage: NDBM_File::error(db)"); } { @@ -212,24 +212,24 @@ register int items; int RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); RETVAL = dbm_error(db); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setiv(ST(0), (I32)RETVAL); } - return sp; + return ax; } static int -XS_NDBM_File_dbm_clearerr(ix, sp, items) +XS_NDBM_File_dbm_clearerr(ix, ax, items) register int ix; -register int sp; +register int ax; register int items; { - if (items < 1 || items > 1) { + if (items != 1) { croak("Usage: NDBM_File::clearerr(db)"); } { @@ -237,20 +237,20 @@ register int items; int RETVAL; if (sv_isa(ST(1), "NDBM_File")) - db = (NDBM_File)(unsigned long)SvNV((SV*)SvANY(ST(1))); + db = (NDBM_File)(unsigned long)SvNV((SV*)SvRV(ST(1))); else croak("db is not of type NDBM_File"); RETVAL = dbm_clearerr(db); - ST(0) = sv_mortalcopy(&sv_undef); + ST(0) = sv_newmortal(); sv_setiv(ST(0), (I32)RETVAL); } - return sp; + return ax; } -int init_NDBM_File(ix,sp,items) +int boot_NDBM_File(ix,ax,items) int ix; -int sp; +int ax; int items; { char* file = __FILE__; |