aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorMiles Bader2007-10-12 21:06:27 +0000
committerMiles Bader2007-10-12 21:06:27 +0000
commit985773c9038f9847f9e7362f3b5fb0c8acac13a2 (patch)
tree12d10cb76729ccbdc5ace4688d15f83894a70cc9 /src/alloc.c
parent47632e43ca42e26da139289f1e0f4f69e8c140fd (diff)
downloademacs-985773c9038f9847f9e7362f3b5fb0c8acac13a2.tar.gz
emacs-985773c9038f9847f9e7362f3b5fb0c8acac13a2.zip
Fix up multi-tty merge
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-261 Creator: Stefan Monnier <monnier@iro.umontreal.ca>
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c50
1 files changed, 4 insertions, 46 deletions
diff --git a/src/alloc.c b/src/alloc.c
index fccdf2a88a7..ed003af3ea8 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3070,51 +3070,6 @@ See also the function `vector'. */)
3070} 3070}
3071 3071
3072 3072
3073DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0,
3074 doc: /* Return a newly created char-table, with purpose PURPOSE.
3075Each element is initialized to INIT, which defaults to nil.
3076PURPOSE should be a symbol which has a `char-table-extra-slots' property.
3077The property's value should be an integer between 0 and 10. */)
3078 (purpose, init)
3079 register Lisp_Object purpose, init;
3080{
3081 Lisp_Object vector;
3082 Lisp_Object n;
3083 CHECK_SYMBOL (purpose);
3084 n = Fget (purpose, Qchar_table_extra_slots);
3085 CHECK_NUMBER (n);
3086 if (XINT (n) < 0 || XINT (n) > 10)
3087 args_out_of_range (n, Qnil);
3088 /* Add 2 to the size for the defalt and parent slots. */
3089 vector = Fmake_vector (make_number (CHAR_TABLE_STANDARD_SLOTS + XINT (n)),
3090 init);
3091 XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE);
3092 XCHAR_TABLE (vector)->top = Qt;
3093 XCHAR_TABLE (vector)->parent = Qnil;
3094 XCHAR_TABLE (vector)->purpose = purpose;
3095 XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
3096 return vector;
3097}
3098
3099
3100/* Return a newly created sub char table with slots initialized by INIT.
3101 Since a sub char table does not appear as a top level Emacs Lisp
3102 object, we don't need a Lisp interface to make it. */
3103
3104Lisp_Object
3105make_sub_char_table (init)
3106 Lisp_Object init;
3107{
3108 Lisp_Object vector
3109 = Fmake_vector (make_number (SUB_CHAR_TABLE_STANDARD_SLOTS), init);
3110 XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE);
3111 XCHAR_TABLE (vector)->top = Qnil;
3112 XCHAR_TABLE (vector)->defalt = Qnil;
3113 XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
3114 return vector;
3115}
3116
3117
3118DEFUN ("vector", Fvector, Svector, 0, MANY, 0, 3073DEFUN ("vector", Fvector, Svector, 0, MANY, 0,
3119 doc: /* Return a newly created vector with specified arguments as elements. 3074 doc: /* Return a newly created vector with specified arguments as elements.
3120Any number of arguments, even zero arguments, are allowed. 3075Any number of arguments, even zero arguments, are allowed.
@@ -4964,7 +4919,10 @@ Does not copy symbols. Copies strings without text properties. */)
4964 for (i = 0; i < size; i++) 4919 for (i = 0; i < size; i++)
4965 vec->contents[i] = Fpurecopy (XVECTOR (obj)->contents[i]); 4920 vec->contents[i] = Fpurecopy (XVECTOR (obj)->contents[i]);
4966 if (COMPILEDP (obj)) 4921 if (COMPILEDP (obj))
4967 XSETCOMPILED (obj, vec); 4922 {
4923 XSETPVECTYPE (vec, PVEC_COMPILED);
4924 XSETCOMPILED (obj, vec);
4925 }
4968 else 4926 else
4969 XSETVECTOR (obj, vec); 4927 XSETVECTOR (obj, vec);
4970 return obj; 4928 return obj;