Mercurial > hg > xemacs-beta
comparison src/database.c @ 563:183866b06e0b
[xemacs-hg @ 2001-05-24 07:50:48 by ben]
Makefile.in.in, abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, casetab.c, chartab.c, cmdloop.c, cmds.c, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console.c, data.c, database.c, debug.c, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, dired.c, doc.c, doprnt.c, dragdrop.c, editfns.c, eldap.c, eldap.h, elhash.c, emacs-widget-accessors.c, emacs.c, emodules.c, esd.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, filelock.c, floatfns.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, general-slots.h, glade.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-gtk.c, gui-x.c, gui.c, gutter.c, hpplay.c, indent.c, input-method-xlib.c, insdel.c, intl.c, keymap.c, libsst.c, libsst.h, linuxplay.c, lisp.h, lread.c, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, miscplay.c, miscplay.h, mule-ccl.c, mule-charset.c, mule-wnnfns.c, mule.c, nas.c, ntplay.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay.c, scrollbar.c, search.c, select-gtk.c, select-x.c, select.c, sgiplay.c, sheap.c, sound.c, specifier.c, sunplay.c, symbols.c, symeval.h, symsinit.h, syntax.c, sysdep.c, toolbar-msw.c, toolbar.c, tooltalk.c, ui-byhand.c, ui-gtk.c, undo.c, unexaix.c, unexapollo.c, unexconvex.c, unexec.c, widget.c, win32.c, window.c:
-- defsymbol -> DEFSYMBOL.
-- add an error type to all errors.
-- eliminate the error functions in eval.c that let you just
use Qerror as the type.
-- redo the error API to be more consistent, sensibly named,
and easier to use.
-- redo the error hierarchy somewhat. create new errors:
structure-formation-error, gui-error, invalid-constant,
stack-overflow, out-of-memory, process-error, network-error,
sound-error, printing-unreadable-object, base64-conversion-
error; coding-system-error renamed to text-conversion error;
some others.
-- fix Mule problems in error strings in emodules.c, tooltalk.c.
-- fix error handling in mswin open-network-stream.
-- Mule-ize all sound files and clean up the headers.
-- nativesound.h -> sound.h and used for all sound files.
-- move some shared stuff into glyphs-shared.c: first attempt
at eliminating some of the massive GTK code duplication.
xemacs.mak: add glyphs-shared.c.
xemacs-faq.texi: document how to debug X errors
subr.el: fix doc string to reflect reality
author | ben |
---|---|
date | Thu, 24 May 2001 07:51:33 +0000 |
parents | ed498ef2108b |
children | af57a77cbc92 |
comparison
equal
deleted
inserted
replaced
562:c775bd016b32 | 563:183866b06e0b |
---|---|
117 #define DATABASE_LIVE_P(x) (x->live_p) | 117 #define DATABASE_LIVE_P(x) (x->live_p) |
118 | 118 |
119 #define CHECK_LIVE_DATABASE(db) do { \ | 119 #define CHECK_LIVE_DATABASE(db) do { \ |
120 CHECK_DATABASE (db); \ | 120 CHECK_DATABASE (db); \ |
121 if (!DATABASE_LIVE_P (XDATABASE(db))) \ | 121 if (!DATABASE_LIVE_P (XDATABASE(db))) \ |
122 signal_simple_error ("Attempting to access closed database", db); \ | 122 invalid_operation ("Attempting to access closed database", db); \ |
123 } while (0) | 123 } while (0) |
124 | 124 |
125 | 125 |
126 static Lisp_Database * | 126 static Lisp_Database * |
127 allocate_database (void) | 127 allocate_database (void) |
157 { | 157 { |
158 char buf[64]; | 158 char buf[64]; |
159 Lisp_Database *db = XDATABASE (obj); | 159 Lisp_Database *db = XDATABASE (obj); |
160 | 160 |
161 if (print_readably) | 161 if (print_readably) |
162 error ("printing unreadable object #<database 0x%x>", db->header.uid); | 162 printing_unreadable_object ("#<database 0x%x>", db->header.uid); |
163 | 163 |
164 write_c_string ("#<database \"", printcharfun); | 164 write_c_string ("#<database \"", printcharfun); |
165 print_internal (db->fname, printcharfun, 0); | 165 print_internal (db->fname, printcharfun, 0); |
166 sprintf (buf, "\" (%s/%s/%s) 0x%x>", | 166 sprintf (buf, "\" (%s/%s/%s) 0x%x>", |
167 (char *) string_data (XSYMBOL (db->funcs->get_type (db))->name), | 167 (char *) string_data (XSYMBOL (db->funcs->get_type (db))->name), |
181 if (for_disksave) | 181 if (for_disksave) |
182 { | 182 { |
183 Lisp_Object object; | 183 Lisp_Object object; |
184 XSETDATABASE (object, db); | 184 XSETDATABASE (object, db); |
185 | 185 |
186 signal_simple_error | 186 invalid_operation |
187 ("Can't dump an emacs containing database objects", object); | 187 ("Can't dump an emacs containing database objects", object); |
188 } | 188 } |
189 db->funcs->close (db); | 189 db->funcs->close (db); |
190 } | 190 } |
191 | 191 |
652 #if DB_VERSION_MAJOR > 2 | 652 #if DB_VERSION_MAJOR > 2 |
653 else if (EQ (subtype, Qqueue)) | 653 else if (EQ (subtype, Qqueue)) |
654 real_subtype = DB_QUEUE; | 654 real_subtype = DB_QUEUE; |
655 #endif | 655 #endif |
656 else | 656 else |
657 signal_simple_error ("Unsupported subtype", subtype); | 657 invalid_constant ("Unsupported subtype", subtype); |
658 | 658 |
659 #if DB_VERSION_MAJOR == 1 | 659 #if DB_VERSION_MAJOR == 1 |
660 dbase = dbopen (filename, accessmask, modemask, real_subtype, NULL); | 660 dbase = dbopen (filename, accessmask, modemask, real_subtype, NULL); |
661 if (!dbase) | 661 if (!dbase) |
662 return Qnil; | 662 return Qnil; |
704 db->funcs = &berk_func_block; | 704 db->funcs = &berk_func_block; |
705 goto db_done; | 705 goto db_done; |
706 } | 706 } |
707 #endif /* HAVE_BERKELEY_DB */ | 707 #endif /* HAVE_BERKELEY_DB */ |
708 | 708 |
709 signal_simple_error ("Unsupported database type", type); | 709 invalid_constant ("Unsupported database type", type); |
710 return Qnil; | 710 return Qnil; |
711 | 711 |
712 db_done: | 712 db_done: |
713 db->live_p = 1; | 713 db->live_p = 1; |
714 db->fname = file; | 714 db->fname = file; |
784 void | 784 void |
785 syms_of_database (void) | 785 syms_of_database (void) |
786 { | 786 { |
787 INIT_LRECORD_IMPLEMENTATION (database); | 787 INIT_LRECORD_IMPLEMENTATION (database); |
788 | 788 |
789 defsymbol (&Qdatabasep, "databasep"); | 789 DEFSYMBOL (Qdatabasep); |
790 #ifdef HAVE_DBM | 790 #ifdef HAVE_DBM |
791 defsymbol (&Qdbm, "dbm"); | 791 DEFSYMBOL (Qdbm); |
792 #endif | 792 #endif |
793 #ifdef HAVE_BERKELEY_DB | 793 #ifdef HAVE_BERKELEY_DB |
794 defsymbol (&Qberkeley_db, "berkeley-db"); | 794 DEFSYMBOL (Qberkeley_db); |
795 defsymbol (&Qhash, "hash"); | 795 DEFSYMBOL (Qhash); |
796 defsymbol (&Qbtree, "btree"); | 796 DEFSYMBOL (Qbtree); |
797 defsymbol (&Qrecno, "recno"); | 797 DEFSYMBOL (Qrecno); |
798 #if DB_VERSION_MAJOR > 2 | 798 #if DB_VERSION_MAJOR > 2 |
799 defsymbol (&Qqueue, "queue"); | 799 DEFSYMBOL (Qqueue); |
800 #endif | 800 #endif |
801 defsymbol (&Qunknown, "unknown"); | 801 DEFSYMBOL (Qunknown); |
802 #endif | 802 #endif |
803 | 803 |
804 DEFSUBR (Fopen_database); | 804 DEFSUBR (Fopen_database); |
805 DEFSUBR (Fdatabasep); | 805 DEFSUBR (Fdatabasep); |
806 DEFSUBR (Fmapdatabase); | 806 DEFSUBR (Fmapdatabase); |