annotate lib-src/fakelisp.c @ 9:6f2bbbbbe05a

Added tag r19-15b5 for changeset 4b173ad71786
author cvs
date Mon, 13 Aug 2007 08:47:36 +0200
parents 376386a54a3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 #include "fakelisp.h"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 void *Lisp_Object_Table[4096];
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 int Lisp_Object_Index = 0;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 Lisp_Object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 make_vector(len)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 int len;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 Lisp_Object val = Lisp_Object_Index++;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_Vector));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 XVECTOR (val)->size = len;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 XVECTOR (val)->contents =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 (Lisp_Object *) malloc ((sizeof (Lisp_Object)) * len);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 return (val | (Lisp_Vector << VALBITS));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 Lisp_Object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 make_string(str)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 char *str;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 Lisp_Object val = Lisp_Object_Index++;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 int len = strlen (str);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_String));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 XSTRING (val)->size = len;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 XSTRING (val)->data = (unsigned char *) malloc (len + 1);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 memcpy (XSTRING (val)->data, str, len + 1);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 return (val | (Lisp_String << VALBITS));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 Lisp_Object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 make_symbol(name)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 char *name;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 Lisp_Object val = Lisp_Object_Index++;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 int len = strlen (name);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 Lisp_Object_Table[val] = (char *) malloc (sizeof (struct Lisp_Symbol));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 XSYMBOL (val)->name = (unsigned char *) malloc (len + 1);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 memcpy (XSYMBOL (val)->name, name, len + 1);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 XSYMBOL (val)->value = Qnil;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 return (val | (Lisp_String << VALBITS));
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 Lisp_Object
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 Fsymbol_value(obj)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 Lisp_Object obj;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 return XSYMBOL (obj)->value;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 }