Mercurial > hg > xemacs-beta
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) |