comparison src/database.c @ 94:1040fe1366ac xemacs-20-0f2

Import from CVS: tag xemacs-20-0f2
author cvs
date Mon, 13 Aug 2007 09:12:09 +0200
parents 131b0175ea99
children 538048ae2ab8
comparison
equal deleted inserted replaced
93:486ff617c2a1 94:1040fe1366ac
69 struct lcrecord_header header; 69 struct lcrecord_header header;
70 Lisp_Object fname; 70 Lisp_Object fname;
71 XEMACS_DB_TYPE type; 71 XEMACS_DB_TYPE type;
72 int mode; 72 int mode;
73 int ackcess; 73 int ackcess;
74 int errno; 74 int dberrno;
75 void *db_handle; 75 void *db_handle;
76 DB_FUNCS *funcs; 76 DB_FUNCS *funcs;
77 }; 77 };
78 78
79 #define XDATABASE(x) XRECORD (x, database, struct database_struct) 79 #define XDATABASE(x) XRECORD (x, database, struct database_struct)
98 98
99 dbase->fname = Qnil; 99 dbase->fname = Qnil;
100 dbase->db_handle = NULL; 100 dbase->db_handle = NULL;
101 dbase->ackcess = 0; 101 dbase->ackcess = 0;
102 dbase->mode = 0; 102 dbase->mode = 0;
103 dbase->errno = 0; 103 dbase->dberrno = 0;
104 dbase->type = DB_UNKNOWN; 104 dbase->type = DB_UNKNOWN;
105 return (dbase); 105 return (dbase);
106 } 106 }
107 107
108 static Lisp_Object 108 static Lisp_Object
320 } 320 }
321 321
322 static Lisp_Object 322 static Lisp_Object
323 dbm_lasterr (struct database_struct *dbp) 323 dbm_lasterr (struct database_struct *dbp)
324 { 324 {
325 char *temp = strerror (dbp->errno); 325 char *temp = strerror (dbp->dberrno);
326 return (make_string ((unsigned char *) temp, strlen (temp))); 326 return (make_string ((unsigned char *) temp, strlen (temp)));
327 } 327 }
328 328
329 static void 329 static void
330 dbm_closeit (struct database_struct *db) 330 dbm_closeit (struct database_struct *db)
403 } 403 }
404 404
405 static Lisp_Object 405 static Lisp_Object
406 berkdb_lasterr (struct database_struct *dbp) 406 berkdb_lasterr (struct database_struct *dbp)
407 { 407 {
408 char *temp = strerror (dbp->errno); 408 char *temp = strerror (dbp->dberrno);
409 return (make_string ((unsigned char *) temp, strlen (temp))); 409 return (make_string ((unsigned char *) temp, strlen (temp)));
410 } 410 }
411 411
412 static Lisp_Object 412 static Lisp_Object
413 berkdb_get (struct database_struct *db, Lisp_Object key) 413 berkdb_get (struct database_struct *db, Lisp_Object key)
422 status = dbp->get (dbp, &keydatum, &valdatum, 0); 422 status = dbp->get (dbp, &keydatum, &valdatum, 0);
423 423
424 if (!status) 424 if (!status)
425 return (make_string (valdatum.data, valdatum.size)); 425 return (make_string (valdatum.data, valdatum.size));
426 426
427 db->errno = (status == 1) ? -1 : errno; 427 db->dberrno = (status == 1) ? -1 : errno;
428 return (Qnil); 428 return (Qnil);
429 } 429 }
430 430
431 static int 431 static int
432 berkdb_put (struct database_struct *db, 432 berkdb_put (struct database_struct *db,
442 keydatum.size = XSTRING_LENGTH (key); 442 keydatum.size = XSTRING_LENGTH (key);
443 valdatum.data = XSTRING_DATA (val); 443 valdatum.data = XSTRING_DATA (val);
444 valdatum.size = XSTRING_LENGTH (val); 444 valdatum.size = XSTRING_LENGTH (val);
445 status = dbp->put (dbp, &keydatum, &valdatum, NILP (replace) 445 status = dbp->put (dbp, &keydatum, &valdatum, NILP (replace)
446 ? R_NOOVERWRITE : 0); 446 ? R_NOOVERWRITE : 0);
447 db->errno = (status == 1) ? -1 : errno; 447 db->dberrno = (status == 1) ? -1 : errno;
448 return status; 448 return status;
449 } 449 }
450 450
451 static int 451 static int
452 berkdb_remove (struct database_struct *db, Lisp_Object key) 452 berkdb_remove (struct database_struct *db, Lisp_Object key)
460 460
461 status = dbp->del (dbp, &keydatum, 0); 461 status = dbp->del (dbp, &keydatum, 0);
462 if (!status) 462 if (!status)
463 return 0; 463 return 0;
464 464
465 db->errno = (status == 1) ? -1 : errno; 465 db->dberrno = (status == 1) ? -1 : errno;
466 return 1; 466 return 1;
467 } 467 }
468 468
469 static void 469 static void
470 berkdb_map (struct database_struct *db, Lisp_Object func) 470 berkdb_map (struct database_struct *db, Lisp_Object func)