pike.git / src / modules / Gdbm / gdbmmod.c

version» Context lines:

pike.git/src/modules/Gdbm/gdbmmod.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: gdbmmod.c,v 1.11 2000/07/28 07:11:52 hubbe Exp $"); + RCSID("$Id: gdbmmod.c,v 1.12 2000/12/01 08:09:56 hubbe Exp $");   #include "gdbm_machine.h"   #include "threads.h"      /* Todo: make sure only one thread accesses the same gdbmmod */      #include "interpret.h"   #include "svalue.h"   #include "stralloc.h"   #include "array.h"   #include "object.h"
pike.git/src/modules/Gdbm/gdbmmod.c:55:   {    int mode;    mode=0;    while(1)    {    switch(*(mods++))    {    case 0:    switch(mode & 15)    { -  default: error("No mode given for gdbm->open()\n"); +  default: Pike_error("No mode given for gdbm->open()\n");    case 1|16:    case 1: mode=GDBM_READER; break;    case 3: mode=GDBM_WRITER; break;    case 3|16: mode=GDBM_WRITER | GDBM_FAST; break;    case 7: mode=GDBM_WRCREAT; break;    case 7|16: mode=GDBM_WRCREAT | GDBM_FAST; break;    case 15: mode=GDBM_NEWDB; break;    case 15|16: mode=GDBM_NEWDB | GDBM_FAST; break;    }    return mode;       case 'r': case 'R': mode|=1; break;    case 'w': case 'W': mode|=3; break;    case 'c': case 'C': mode|=7; break;    case 't': case 'T': mode|=15; break;    case 'f': case 'F': mode|=16; break;       default: -  error("Bad mode flag in gdbm->open.\n"); +  Pike_error("Bad mode flag in gdbm->open.\n");    }    }   }      void gdbmmod_fatal(char *err)   { -  error("GDBM: %s\n",err); +  Pike_error("GDBM: %s\n",err);   }      static void gdbmmod_create(INT32 args)   {    struct gdbm_glue *this=THIS;    do_free();    if(args)    {    GDBM_FILE tmp;    struct pike_string *tmp2;    int rwmode = GDBM_WRCREAT;       if(sp[-args].type != T_STRING) -  error("Bad argument 1 to gdbm->create()\n"); +  Pike_error("Bad argument 1 to gdbm->create()\n");       if(args>1)    {    if(sp[1-args].type != T_STRING) -  error("Bad argument 2 to gdbm->create()\n"); +  Pike_error("Bad argument 2 to gdbm->create()\n");       rwmode=fixmods(sp[1-args].u.string->str);    }       tmp2=sp[-args].u.string;       THREADS_ALLOW();    mt_lock(& gdbm_lock);    tmp=gdbm_open(tmp2->str, 512, rwmode, 00666, gdbmmod_fatal);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       if(!Pike_fp->current_object->prog)    {    if(tmp) gdbm_close(tmp); -  error("Object destructed in gdbm->open()n"); +  Pike_error("Object destructed in gdbm->open()n");    }    THIS->dbf=tmp;       pop_n_elems(args);    if(!THIS->dbf) -  error("Failed to open GDBM database.\n"); +  Pike_error("Failed to open GDBM database.\n");    }   }      #define STRING_TO_DATUM(dat, st) dat.dptr=st->str,dat.dsize=st->len;   #define DATUM_TO_STRING(dat) make_shared_binary_string(dat.dptr, dat.dsize)      static void gdbmmod_fetch(INT32 args)   {    struct gdbm_glue *this=THIS;    datum key,ret;       if(!args) -  error("Too few arguments to gdbm->fetch()\n"); +  Pike_error("Too few arguments to gdbm->fetch()\n");       if(sp[-args].type != T_STRING) -  error("Bad argument 1 to gdbm->fetch()\n"); +  Pike_error("Bad argument 1 to gdbm->fetch()\n");       if(!THIS->dbf) -  error("GDBM database not open.\n"); +  Pike_error("GDBM database not open.\n");       STRING_TO_DATUM(key, sp[-args].u.string);       THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_fetch(this->dbf, key);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       pop_n_elems(args);
pike.git/src/modules/Gdbm/gdbmmod.c:167:    push_int(0);    }   }      static void gdbmmod_delete(INT32 args)   {    struct gdbm_glue *this=THIS;    datum key;    int ret;    if(!args) -  error("Too few arguments to gdbm->delete()\n"); +  Pike_error("Too few arguments to gdbm->delete()\n");       if(sp[-args].type != T_STRING) -  error("Bad argument 1 to gdbm->delete()\n"); +  Pike_error("Bad argument 1 to gdbm->delete()\n");       if(!this->dbf) -  error("GDBM database not open.\n"); +  Pike_error("GDBM database not open.\n");       STRING_TO_DATUM(key, sp[-args].u.string);       THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_delete(this->dbf, key);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       pop_n_elems(args);    push_int(0);   }      static void gdbmmod_firstkey(INT32 args)   {    struct gdbm_glue *this=THIS;    datum ret;    pop_n_elems(args);    -  if(!this->dbf) error("GDBM database not open.\n"); +  if(!this->dbf) Pike_error("GDBM database not open.\n");       THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_firstkey(this->dbf);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       if(ret.dptr)    {    push_string(DATUM_TO_STRING(ret));
pike.git/src/modules/Gdbm/gdbmmod.c:215:    }else{    push_int(0);    }   }      static void gdbmmod_nextkey(INT32 args)   {    struct gdbm_glue *this=THIS;    datum key,ret;    if(!args) -  error("Too few arguments to gdbm->nextkey()\n"); +  Pike_error("Too few arguments to gdbm->nextkey()\n");       if(sp[-args].type != T_STRING) -  error("Bad argument 1 to gdbm->nextkey()\n"); +  Pike_error("Bad argument 1 to gdbm->nextkey()\n");       if(!THIS->dbf) -  error("GDBM database not open.\n"); +  Pike_error("GDBM database not open.\n");       STRING_TO_DATUM(key, sp[-args].u.string);       THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_nextkey(this->dbf, key);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       pop_n_elems(args);
pike.git/src/modules/Gdbm/gdbmmod.c:247:    push_int(0);    }   }      static void gdbmmod_store(INT32 args)   {    struct gdbm_glue *this=THIS;    datum key,data;    int ret;    if(args<2) -  error("Too few arguments to gdbm->store()\n"); +  Pike_error("Too few arguments to gdbm->store()\n");       if(sp[-args].type != T_STRING) -  error("Bad argument 1 to gdbm->store()\n"); +  Pike_error("Bad argument 1 to gdbm->store()\n");       if(sp[1-args].type != T_STRING) -  error("Bad argument 2 to gdbm->store()\n"); +  Pike_error("Bad argument 2 to gdbm->store()\n");       if(!THIS->dbf) -  error("GDBM database not open.\n"); +  Pike_error("GDBM database not open.\n");       STRING_TO_DATUM(key, sp[-args].u.string);    STRING_TO_DATUM(data, sp[1-args].u.string);       THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_store(this->dbf, key, data, GDBM_REPLACE);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();       if(ret == -1) -  error("GDBM database not open for writing.\n"); +  Pike_error("GDBM database not open for writing.\n");       pop_n_elems(args);    push_int(ret == 0);   }      static void gdbmmod_reorganize(INT32 args)   {    struct gdbm_glue *this=THIS;    int ret;    pop_n_elems(args);    -  if(!THIS->dbf) error("GDBM database not open.\n"); +  if(!THIS->dbf) Pike_error("GDBM database not open.\n");    THREADS_ALLOW();    mt_lock(& gdbm_lock);    ret=gdbm_reorganize(this->dbf);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();    pop_n_elems(args);    push_int(ret);   }      static void gdbmmod_sync(INT32 args)   {    struct gdbm_glue *this=THIS;    pop_n_elems(args);    -  if(!THIS->dbf) error("GDBM database not open.\n"); +  if(!THIS->dbf) Pike_error("GDBM database not open.\n");    THREADS_ALLOW();    mt_lock(& gdbm_lock);    gdbm_sync(this->dbf);    mt_unlock(& gdbm_lock);    THREADS_DISALLOW();    push_int(0);   }      static void gdbmmod_close(INT32 args)   {