Mercurial > hg > xemacs-beta
comparison lib-src/mule/fakelisp.c @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
69:804d1389bcd6 | 70:131b0175ea99 |
---|---|
1 #include "fakelisp.h" | |
2 | |
3 void *Lisp_Object_Table[4096]; | |
4 int Lisp_Object_Index = 0; | |
5 | |
6 Lisp_Object | |
7 make_vector(len) | |
8 int len; | |
9 { | |
10 Lisp_Object val = Lisp_Object_Index++; | |
11 | |
12 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_Vector)); | |
13 XVECTOR (val)->size = len; | |
14 XVECTOR (val)->contents = | |
15 (Lisp_Object *) malloc ((sizeof (Lisp_Object)) * len); | |
16 return (val | (Lisp_Vector << VALBITS)); | |
17 } | |
18 | |
19 Lisp_Object | |
20 make_string(str) | |
21 char *str; | |
22 { | |
23 Lisp_Object val = Lisp_Object_Index++; | |
24 int len = strlen (str); | |
25 | |
26 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_String)); | |
27 XSTRING (val)->size = len; | |
28 XSTRING (val)->data = (unsigned char *) malloc (len + 1); | |
29 memcpy (XSTRING (val)->data, str, len + 1); | |
30 return (val | (Lisp_String << VALBITS)); | |
31 } | |
32 | |
33 Lisp_Object | |
34 make_symbol(name) | |
35 char *name; | |
36 { | |
37 Lisp_Object val = Lisp_Object_Index++; | |
38 int len = strlen (name); | |
39 | |
40 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_Symbol)); | |
41 XSYMBOL (val)->name = (unsigned char *) malloc (len + 1); | |
42 memcpy (XSYMBOL (val)->name, name, len + 1); | |
43 XSYMBOL (val)->value = Qnil; | |
44 return (val | (Lisp_String << VALBITS)); | |
45 } | |
46 | |
47 Lisp_Object | |
48 Fsymbol_value(obj) | |
49 Lisp_Object obj; | |
50 { | |
51 return XSYMBOL (obj)->value; | |
52 } |