Mercurial > hg > xemacs-beta
view modules/postgresql/postgresql.h @ 4792:95b04754ea8c
Make #'equalp more compatible with CL; add a compiler macro, test & doc it.
lisp/ChangeLog addition:
2009-11-08 Aidan Kehoe <kehoea@parhasard.net>
* cl-extra.el (cl-string-vector-equalp)
(cl-bit-vector-vector-equalp, cl-vector-array-equalp)
(cl-hash-table-contents-equalp): New functions, to implement
equalp treating arrays with identical contents as equivalent, as
specified by Common Lisp.
(equalp): Revise this function to implement array equivalence,
and the hash-table equalp behaviour specified by CL.
* cl-macs.el (equalp): Add a compiler macro for this function,
used when one of the arguments is constant, and as such, its type
is known at compile time.
man/ChangeLog addition:
2009-11-08 Aidan Kehoe <kehoea@parhasard.net>
* lispref/objects.texi (Equality Predicates):
Document #'equalp here, as well as #'equal and #'eq.
tests/ChangeLog addition:
2009-12-31 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test much of the functionality of equalp; add a pointer to Paul
Dietz' ANSI test suite for this function, converted to Emacs
Lisp. Not including the tests themselves in XEmacs because who
owns the copyright on the files is unclear and the GCL people
didn't respond to my queries.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 31 Dec 2009 15:09:41 +0000 |
parents | 6ef4efc5cfe0 |
children | e0db3c197671 |
line wrap: on
line source
/* postgresql.h -- Emacs Lisp binding to libpq.so Copyright (C) 2000 Electrotechnical Laboratory, JAPAN. Licensed to the Free Software Foundation. Author: SL Baur <steve@xemacs.org> Maintainer: SL Baur <steve@xemacs.org> Please send patches to this file to me first before submitting them to xemacs-patches. */ #ifndef INCLUDED_postgresql_h_ #define INCLUDED_postgresql_h_ 1 #define message message_ /* Yuck */ #include LIBPQ_FE_H_FILE /* main PostgreSQL header file */ #undef message #define BLCKSZ 8192 /* size of a default Postgres disk block */ /* This file contains the GCC bug workaround code for the private LRECORD types. */ /* PGconn is an opaque object and we need to be able to store them in Lisp code because libpq supports multiple connections. */ struct Lisp_PGconn { struct LCRECORD_HEADER header; PGconn *pgconn; }; typedef struct Lisp_PGconn Lisp_PGconn; DECLARE_LRECORD (pgconn, Lisp_PGconn); #define XPGCONN(x) XRECORD (x, pgconn, Lisp_PGconn) #define wrap_pgconn(p) wrap_record (p, pgconn) #define PGCONNP(x) RECORDP (x, pgconn) #define CHECK_PGCONN(x) CHECK_RECORD (x, pgconn) #define CONCHECK_PGCONN(x) CONCHECK_RECORD (x, pgconn) /****/ /* PGresult is an opaque object and we need to be able to store them in Lisp code. */ struct Lisp_PGresult { struct LCRECORD_HEADER header; PGresult *pgresult; }; typedef struct Lisp_PGresult Lisp_PGresult; DECLARE_LRECORD (pgresult, Lisp_PGresult); #define XPGRESULT(x) XRECORD (x, pgresult, Lisp_PGresult) #define wrap_pgresult(p) wrap_record (p, pgresult) #define PGRESULTP(x) RECORDP (x, pgresult) #define CHECK_PGRESULT(x) CHECK_RECORD (x, pgresult) #define CONCHECK_PGRESULT(x) CONCHECK_RECORD (x, pgresult) #endif /* INCLUDED_postgresql_h_ */