aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorDmitry Antipov2014-08-29 11:29:47 +0400
committerDmitry Antipov2014-08-29 11:29:47 +0400
commit1764ec4414074ea0dcbd912efdfbedb119f8ed3b (patch)
tree0d577861c3e8a3e3e7a554adef7bcb04e0de5c38 /src/lisp.h
parent483dc86ad0e60a1a6da498f9eb95672f286a4ab5 (diff)
downloademacs-1764ec4414074ea0dcbd912efdfbedb119f8ed3b.tar.gz
emacs-1764ec4414074ea0dcbd912efdfbedb119f8ed3b.zip
Add vectors support to Fsort.
* configure.ac (AC_CHECK_FUNCS): Check for qsort_r. * src/fns.c (sort_vector, sort_vector_compare): New functions. (sort_list): Likewise, refactored out of ... (Fsort): ... adjusted user. Mention vectors in docstring. (sort_vector_predicate) [!HAVE_QSORT_R]: New variable. * src/alloc.c (make_save_int_obj): New function. * src/lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ. (make_save_int_obj): Add prototype. * test/automated/fns-tests.el (fns-tests-sort): New test.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 98734a55812..7cbbb299896 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1989,6 +1989,7 @@ enum Lisp_Save_Type
1989 SAVE_TYPE_OBJ_OBJ_OBJ_OBJ 1989 SAVE_TYPE_OBJ_OBJ_OBJ_OBJ
1990 = SAVE_OBJECT + (SAVE_TYPE_OBJ_OBJ_OBJ << SAVE_SLOT_BITS), 1990 = SAVE_OBJECT + (SAVE_TYPE_OBJ_OBJ_OBJ << SAVE_SLOT_BITS),
1991 SAVE_TYPE_PTR_INT = SAVE_POINTER + (SAVE_INTEGER << SAVE_SLOT_BITS), 1991 SAVE_TYPE_PTR_INT = SAVE_POINTER + (SAVE_INTEGER << SAVE_SLOT_BITS),
1992 SAVE_TYPE_INT_OBJ = SAVE_INTEGER + (SAVE_OBJECT << SAVE_SLOT_BITS),
1992 SAVE_TYPE_PTR_OBJ = SAVE_POINTER + (SAVE_OBJECT << SAVE_SLOT_BITS), 1993 SAVE_TYPE_PTR_OBJ = SAVE_POINTER + (SAVE_OBJECT << SAVE_SLOT_BITS),
1993 SAVE_TYPE_PTR_PTR = SAVE_POINTER + (SAVE_POINTER << SAVE_SLOT_BITS), 1994 SAVE_TYPE_PTR_PTR = SAVE_POINTER + (SAVE_POINTER << SAVE_SLOT_BITS),
1994 SAVE_TYPE_FUNCPTR_PTR_OBJ 1995 SAVE_TYPE_FUNCPTR_PTR_OBJ
@@ -3773,6 +3774,7 @@ extern Lisp_Object make_save_obj_obj_obj_obj (Lisp_Object, Lisp_Object,
3773extern Lisp_Object make_save_ptr (void *); 3774extern Lisp_Object make_save_ptr (void *);
3774extern Lisp_Object make_save_ptr_int (void *, ptrdiff_t); 3775extern Lisp_Object make_save_ptr_int (void *, ptrdiff_t);
3775extern Lisp_Object make_save_ptr_ptr (void *, void *); 3776extern Lisp_Object make_save_ptr_ptr (void *, void *);
3777extern Lisp_Object make_save_int_obj (ptrdiff_t, Lisp_Object);
3776extern Lisp_Object make_save_funcptr_ptr_obj (void (*) (void), void *, 3778extern Lisp_Object make_save_funcptr_ptr_obj (void (*) (void), void *,
3777 Lisp_Object); 3779 Lisp_Object);
3778extern Lisp_Object make_save_memory (Lisp_Object *, ptrdiff_t); 3780extern Lisp_Object make_save_memory (Lisp_Object *, ptrdiff_t);