Mercurial > hg > xemacs-beta
annotate src/opaque.h @ 5518:3cc7470ea71c
gnuclient: if TMPDIR was set and connect failed, try again with /tmp
2011-06-03 Aidan Kehoe <kehoea@parhasard.net>
* gnuslib.c (connect_to_unix_server):
Retry with /tmp as a directory in which to search for Unix sockets
if an attempt to connect with some other directory failed (which
may be because gnuclient and gnuserv don't share an environment
value for TMPDIR, or because gnuserv was compiled with USE_TMPDIR
turned off).
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Fri, 03 Jun 2011 18:40:57 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 /* Opaque Lisp objects. |
2 Copyright (C) 1993 Sun Microsystems, Inc. | |
3 Copyright (C) 1995, 1996 Ben Wing. | |
4 | |
5 This file is part of XEmacs. | |
6 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
7 XEmacs is free software: you can redistribute it and/or modify it |
428 | 8 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
9 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
10 option) any later version. |
428 | 11 |
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5127
diff
changeset
|
18 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 19 |
20 /* Synched up with: Not in FSF. */ | |
21 | |
22 /* Written by Ben Wing, October 1993. */ | |
23 | |
440 | 24 #ifndef INCLUDED_opaque_h_ |
25 #define INCLUDED_opaque_h_ | |
428 | 26 |
27 typedef struct Lisp_Opaque | |
28 { | |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5120
diff
changeset
|
29 NORMAL_LISP_OBJECT_HEADER header; |
665 | 30 Bytecount size; |
428 | 31 max_align_t data[1]; |
32 } Lisp_Opaque; | |
33 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
3017
diff
changeset
|
34 DECLARE_LISP_OBJECT (opaque, Lisp_Opaque); |
428 | 35 #define XOPAQUE(x) XRECORD (x, opaque, Lisp_Opaque) |
617 | 36 #define wrap_opaque(p) wrap_record (p, opaque) |
428 | 37 #define OPAQUEP(x) RECORDP (x, opaque) |
38 /* #define CHECK_OPAQUE(x) CHECK_RECORD (x, opaque) | |
39 Opaque pointers should never escape to the Lisp level, so | |
40 functions should not be doing this. */ | |
41 | |
440 | 42 /* Alternative DATA arguments to make_opaque() */ |
442 | 43 #define OPAQUE_CLEAR ((const void *) 0) |
44 #define OPAQUE_UNINIT ((const void *) -1) | |
428 | 45 |
46 #define OPAQUE_SIZE(op) ((op)->size) | |
47 #define OPAQUE_DATA(op) ((void *) ((op)->data)) | |
48 #define XOPAQUE_SIZE(op) OPAQUE_SIZE (XOPAQUE (op)) | |
49 #define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op)) | |
50 | |
665 | 51 Lisp_Object make_opaque (const void *data, Bytecount size); |
428 | 52 |
53 typedef struct Lisp_Opaque_Ptr | |
54 { | |
5127
a9c41067dd88
more cleanups, terminology clarification, lots of doc work
Ben Wing <ben@xemacs.org>
parents:
5120
diff
changeset
|
55 NORMAL_LISP_OBJECT_HEADER header; |
428 | 56 void *ptr; |
57 } Lisp_Opaque_Ptr; | |
58 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
3017
diff
changeset
|
59 DECLARE_LISP_OBJECT (opaque_ptr, Lisp_Opaque_Ptr); |
428 | 60 #define XOPAQUE_PTR(x) XRECORD (x, opaque_ptr, Lisp_Opaque_Ptr) |
617 | 61 #define wrap_opaque_ptr(p) wrap_record (p, opaque_ptr) |
428 | 62 #define OPAQUE_PTRP(x) RECORDP (x, opaque_ptr) |
63 | |
1650 | 64 EXTERN_C MODULE_API Lisp_Object make_opaque_ptr (void *val); |
65 EXTERN_C MODULE_API void free_opaque_ptr (Lisp_Object ptr); | |
428 | 66 |
67 #define get_opaque_ptr(op) (XOPAQUE_PTR (op)->ptr) | |
68 #define set_opaque_ptr(op, ptr_) (XOPAQUE_PTR (op)->ptr = (ptr_)) | |
69 | |
440 | 70 #endif /* INCLUDED_opaque_h_ */ |