Mercurial > hg > xemacs-beta
diff src/database.c @ 5495:1f0b15040456
Merge.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 01 May 2011 18:44:03 +0100 |
parents | 308d34e9f07d |
children | 56144c8593a8 |
line wrap: on
line diff
--- a/src/database.c Sat Feb 20 06:03:00 2010 -0600 +++ b/src/database.c Sun May 01 18:44:03 2011 +0100 @@ -1,13 +1,13 @@ /* Database access routines Copyright (C) 1996, William M. Perry - Copyright (C) 2001, 2002, 2005 Ben Wing. + Copyright (C) 2001, 2002, 2005, 2010 Ben Wing. This file is part of XEmacs. -XEmacs is free software; you can redistribute it and/or modify it +XEmacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. +Free Software Foundation, either version 3 of the License, or (at your +option) any later version. XEmacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -15,9 +15,7 @@ for more details. You should have received a copy of the GNU General Public License -along with XEmacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ /* Synched up with: Not in FSF. */ @@ -147,7 +145,7 @@ struct Lisp_Database { - struct LCRECORD_HEADER header; + NORMAL_LISP_OBJECT_HEADER header; Lisp_Object fname; int mode; int access_; @@ -180,7 +178,8 @@ static Lisp_Database * allocate_database (void) { - Lisp_Database *db = ALLOC_LCRECORD_TYPE (Lisp_Database, &lrecord_database); + Lisp_Object obj = ALLOC_NORMAL_LISP_OBJECT (database); + Lisp_Database *db = XDATABASE (obj); db->fname = Qnil; db->live_p = 0; @@ -216,7 +215,7 @@ Lisp_Database *db = XDATABASE (obj); if (print_readably) - printing_unreadable_lcrecord (obj, 0); + printing_unreadable_lisp_object (obj, 0); write_fmt_string_lisp (printcharfun, "#<database \"%s\" (%s/%s/", 3, db->fname, db->funcs->get_type (db), @@ -231,29 +230,22 @@ XSYMBOL_NAME (XCODING_SYSTEM_NAME (db->coding_system))); - write_fmt_string (printcharfun, "0x%x>", db->header.uid); + write_fmt_string (printcharfun, "0x%x>", LISP_OBJECT_UID (obj)); } static void -finalize_database (void *header, int for_disksave) +finalize_database (Lisp_Object obj) { - Lisp_Database *db = (Lisp_Database *) header; + Lisp_Database *db = XDATABASE (obj); - if (for_disksave) - { - invalid_operation - ("Can't dump an emacs containing database objects", - wrap_database (db)); - } db->funcs->close (db); } -DEFINE_LRECORD_IMPLEMENTATION ("database", database, - 0, /*dumpable-flag*/ - mark_database, print_database, - finalize_database, 0, 0, - database_description, - Lisp_Database); +DEFINE_NODUMP_LISP_OBJECT ("database", database, + mark_database, print_database, + finalize_database, 0, 0, + database_description, + Lisp_Database); DEFUN ("close-database", Fclose_database, 1, 1, 0, /* Close database DATABASE. @@ -860,7 +852,7 @@ void syms_of_database (void) { - INIT_LRECORD_IMPLEMENTATION (database); + INIT_LISP_OBJECT (database); DEFSYMBOL (Qdatabasep); #ifdef HAVE_DBM