Changeset 3dd3ff in git


Ignore:
Timestamp:
Dec 18, 2007, 10:53:26 AM (16 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
e370800a0a8b1c4cd76b09ae41b60d567914849f
Parents:
df1a7e121deb1550a93745377f0fdfc3addcea24
Message:
*hannes: format


git-svn-id: file:///usr/local/Singular/svn/trunk@10470 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ndbm.cc

    rdf1a7e r3dd3ff  
    55//**************************************************************************/
    66//
    7 // $Id: ndbm.cc,v 1.16 2005-07-27 09:59:27 Singular Exp $
     7// $Id: ndbm.cc,v 1.17 2007-12-18 09:53:26 Singular Exp $
    88//
    99//**************************************************************************/
     
    6666extern  int errno;
    6767
    68 DBM *
    69 dbm_open(char *file, int flags, int mode)
     68DBM * dbm_open(char *file, int flags, int mode)
    7069{
    7170  struct stat statb;
    7271  register DBM *db;
    7372
    74   if ((db = (DBM *)malloc(sizeof *db)) == 0) {
     73  if ((db = (DBM *)malloc(sizeof *db)) == 0)
     74  {
    7575    errno = ENOMEM;
    7676    return ((DBM *)0);
     
    104104}
    105105
    106 void
    107 dbm_close(DBM *db)
     106void dbm_close(DBM *db)
    108107{
    109108  (void) close(db->dbm_dirf);
     
    112111}
    113112
    114 long
    115 dbm_forder(register DBM *db, datum key)
     113long dbm_forder(register DBM *db, datum key)
    116114{
    117115  long hash;
    118116
    119117  hash = dcalchash(key);
    120   for (db->dbm_hmask=0;; db->dbm_hmask=(db->dbm_hmask<<1)+1) {
     118  for (db->dbm_hmask=0;; db->dbm_hmask=(db->dbm_hmask<<1)+1)
     119  {
    121120    db->dbm_blkno = hash & db->dbm_hmask;
    122121    db->dbm_bitno = db->dbm_blkno + db->dbm_hmask;
     
    127126}
    128127
    129 datum
    130 dbm_fetch(register DBM *db, datum key)
     128datum dbm_fetch(register DBM *db, datum key)
    131129{
    132130  register int i;
     
    136134    goto err;
    137135  dbm_access(db, dcalchash(key));
    138   if ((i = finddatum(db->dbm_pagbuf, key)) >= 0) {
     136  if ((i = finddatum(db->dbm_pagbuf, key)) >= 0)
     137  {
    139138    item = makdatum(db->dbm_pagbuf, i+1);
    140139    if (item.dptr != NULL)
     
    154153  if (dbm_error(db))
    155154    return (-1);
    156   if (dbm_rdonly(db)) {
     155  if (dbm_rdonly(db))
     156  {
    157157    errno = EPERM;
    158158    return (-1);
     
    165165  db->dbm_pagbno = db->dbm_blkno;
    166166  (void) lseek(db->dbm_pagf, db->dbm_blkno*PBLKSIZ, L_SET);
    167   if (write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ) {
     167  if (write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ)
     168  {
    168169  err:
    169170    db->dbm_flags |= _DBM_IOERR;
     
    182183  if (dbm_error(db))
    183184    return (-1);
    184   if (dbm_rdonly(db)) {
     185  if (dbm_rdonly(db))
     186  {
    185187    errno = EPERM;
    186188    return (-1);
     
    188190loop:
    189191  dbm_access(db, dcalchash(key));
    190   if ((i = finddatum(db->dbm_pagbuf, key)) >= 0) {
     192  if ((i = finddatum(db->dbm_pagbuf, key)) >= 0)
     193  {
    191194    if (!replace)
    192195      return (1);
    193     if (!delitem(db->dbm_pagbuf, i)) {
     196    if (!delitem(db->dbm_pagbuf, i))
     197    {
    194198      db->dbm_flags |= _DBM_IOERR;
    195199      return (-1);
     
    200204  db->dbm_pagbno = db->dbm_blkno;
    201205  (void) lseek(db->dbm_pagf, db->dbm_blkno*PBLKSIZ, L_SET);
    202   if ( (ret=write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ)) != PBLKSIZ) {
     206  if ( (ret=write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ)) != PBLKSIZ)
     207  {
    203208    db->dbm_flags |= _DBM_IOERR;
    204209    return (-1);
     
    207212
    208213split:
    209   if (key.dsize+dat.dsize+3*sizeof(short) >= PBLKSIZ) {
     214  if (key.dsize+dat.dsize+3*sizeof(short) >= PBLKSIZ)
     215  {
    210216    db->dbm_flags |= _DBM_IOERR;
    211217    errno = ENOSPC;
     
    217223    if (item.dptr == NULL)
    218224      break;
    219     if (dcalchash(item) & (db->dbm_hmask+1)) {
     225    if (dcalchash(item) & (db->dbm_hmask+1))
     226    {
    220227      item1 = makdatum(db->dbm_pagbuf, i+1);
    221228      if (item1.dptr == NULL) {
     
    225232      }
    226233      if (!additem(ovfbuf, item, item1) ||
    227           !delitem(db->dbm_pagbuf, i)) {
     234          !delitem(db->dbm_pagbuf, i))
     235      {
    228236        db->dbm_flags |= _DBM_IOERR;
    229237        return (-1);
     
    235243  db->dbm_pagbno = db->dbm_blkno;
    236244  (void) lseek(db->dbm_pagf, db->dbm_blkno*PBLKSIZ, L_SET);
    237   if (write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ) {
     245  if (write(db->dbm_pagf, db->dbm_pagbuf, PBLKSIZ) != PBLKSIZ)
     246  {
    238247    db->dbm_flags |= _DBM_IOERR;
    239248    return (-1);
    240249  }
    241250  (void) lseek(db->dbm_pagf, (db->dbm_blkno+db->dbm_hmask+1)*PBLKSIZ, L_SET);
    242   if (write(db->dbm_pagf, ovfbuf, PBLKSIZ) != PBLKSIZ) {
     251  if (write(db->dbm_pagf, ovfbuf, PBLKSIZ) != PBLKSIZ)
     252  {
    243253    db->dbm_flags |= _DBM_IOERR;
    244254    return (-1);
     
    248258}
    249259
    250 datum
    251 dbm_firstkey(DBM *db)
     260datum dbm_firstkey(DBM *db)
    252261{
    253262
     
    257266}
    258267
    259 datum
    260 dbm_nextkey(register DBM *db)
     268datum dbm_nextkey(register DBM *db)
    261269{
    262270  struct stat statb;
     
    266274                goto err;
    267275  statb.st_size /= PBLKSIZ;
    268   for (;;) {
    269     if (db->dbm_blkptr != db->dbm_pagbno) {
     276  for (;;)
     277  {
     278    if (db->dbm_blkptr != db->dbm_pagbno)
     279    {
    270280      db->dbm_pagbno = db->dbm_blkptr;
    271281      (void) lseek(db->dbm_pagf, db->dbm_blkptr*PBLKSIZ, L_SET);
     
    277287#endif
    278288    }
    279     if (((short *)db->dbm_pagbuf)[0] != 0) {
     289    if (((short *)db->dbm_pagbuf)[0] != 0)
     290    {
    280291      item = makdatum(db->dbm_pagbuf, db->dbm_keyptr);
    281       if (item.dptr != NULL) {
     292      if (item.dptr != NULL)
     293      {
    282294        db->dbm_keyptr += 2;
    283295        return (item);
     
    294306}
    295307
    296 static void
    297 dbm_access(register DBM *db, long hash)
    298 {
    299   for (db->dbm_hmask=0;; db->dbm_hmask=(db->dbm_hmask<<1)+1) {
     308static void dbm_access(register DBM *db, long hash)
     309{
     310  for (db->dbm_hmask=0;; db->dbm_hmask=(db->dbm_hmask<<1)+1)
     311  {
    300312    db->dbm_blkno = hash & db->dbm_hmask;
    301313    db->dbm_bitno = db->dbm_blkno + db->dbm_hmask;
     
    303315      break;
    304316  }
    305   if (db->dbm_blkno != db->dbm_pagbno) {
     317  if (db->dbm_blkno != db->dbm_pagbno)
     318  {
    306319    db->dbm_pagbno = db->dbm_blkno;
    307320    (void) lseek(db->dbm_pagf, db->dbm_blkno*PBLKSIZ, L_SET);
     
    315328}
    316329
    317 static
    318 int getbit(register DBM *db)
     330static int getbit(register DBM *db)
    319331{
    320332  long bn;
     
    328340  i = bn % DBLKSIZ;
    329341  b = bn / DBLKSIZ;
    330   if (b != db->dbm_dirbno) {
     342  if (b != db->dbm_dirbno)
     343  {
    331344    db->dbm_dirbno = b;
    332345    (void) lseek(db->dbm_dirf, (long)b*DBLKSIZ, L_SET);
     
    337350}
    338351
    339 static void
    340 setbit(register DBM *db)
     352static void setbit(register DBM *db)
    341353{
    342354  long bn;
     
    349361  i = bn % DBLKSIZ;
    350362  b = bn / DBLKSIZ;
    351   if (b != db->dbm_dirbno) {
     363  if (b != db->dbm_dirbno)
     364  {
    352365    db->dbm_dirbno = b;
    353366    (void) lseek(db->dbm_dirf, (long)b*DBLKSIZ, L_SET);
     
    362375}
    363376
    364 static datum
    365 makdatum(char buf[PBLKSIZ], int n)
     377static datum makdatum(char buf[PBLKSIZ], int n)
    366378{
    367379  register short *sp;
     
    384396}
    385397
    386 static
    387 int finddatum(char buf[PBLKSIZ], datum item)
     398static int finddatum(char buf[PBLKSIZ], datum item)
    388399{
    389400  register short *sp;
     
    392403  sp = (short *)buf;
    393404  n = PBLKSIZ;
    394   for (i=0, j=sp[0]; i<j; i+=2, n = sp[i]) {
     405  for (i=0, j=sp[0]; i<j; i+=2, n = sp[i])
     406  {
    395407    n -= sp[i+1];
    396408    if (n != item.dsize)
     
    432444};
    433445
    434 static long
    435 hashinc(register DBM *db, long hash)
     446static long hashinc(register DBM *db, long hash)
    436447{
    437448  long bit;
     
    439450  hash &= db->dbm_hmask;
    440451  bit = db->dbm_hmask+1;
    441   for (;;) {
     452  for (;;)
     453  {
    442454    bit >>= 1;
    443455    if (bit == 0)
     
    449461}
    450462
    451 static long
    452 dcalchash(datum item)
     463static long dcalchash(datum item)
    453464{
    454465  register int s, c, j;
     
    459470  hashl = 0;
    460471  hashi = 0;
    461   for (cp = item.dptr, s=item.dsize; --s >= 0; ) {
     472  for (cp = item.dptr, s=item.dsize; --s >= 0; )
     473  {
    462474    c = *cp++;
    463     for (j=0; j<BYTESIZ; j+=4) {
     475    for (j=0; j<BYTESIZ; j+=4)
     476    {
    464477      hashi += hitab[c&017];
    465478      hashl += hltab[hashi&63];
     
    473486 * Delete pairs of items (n & n+1).
    474487 */
    475 static
    476 int delitem(char buf[PBLKSIZ], int n)
     488static int delitem(char buf[PBLKSIZ], int n)
    477489{
    478490  register short *sp, *sp1;
     
    492504    i1 = sp[n];
    493505  i1 -= sp[n+2];
    494   if (i1 > 0) {
     506  if (i1 > 0)
     507  {
    495508    i2 = sp[i2];
    496509    bcopy(&buf[i2], &buf[i2 + i1], sp[n+2] - i2);
     
    505518 * Add pairs of items (item & item1).
    506519 */
    507 static
    508 int additem(char buf[PBLKSIZ], datum item, datum item1)
     520static int additem(char buf[PBLKSIZ], datum item, datum item1)
    509521{
    510522  register short *sp;
     
    528540
    529541#ifdef DEBUG
    530 static
    531 chkblk(char buf[PBLKSIZ])
     542static chkblk(char buf[PBLKSIZ])
    532543{
    533544  register short *sp;
     
    536547  sp = (short *)buf;
    537548  t = PBLKSIZ;
    538   for (i=0; i<sp[0]; i++) {
     549  for (i=0; i<sp[0]; i++)
     550  {
    539551    if (sp[i+1] > t)
    540552      return (-1);
Note: See TracChangeset for help on using the changeset viewer.