comparison src/alloc.c @ 4693:80cd90837ac5

Add argument information to remaining MANY or UNEVALLED C subrs. src/ChangeLog addition: 2009-09-20 Aidan Kehoe <kehoea@parhasard.net> * alloc.c (Flist): (Fvector): (Fbit_vector): (Fmake_byte_code): (Fstring): * data.c (Feqlsign): (Flss): (Fgtr): (Fleq): (Fgeq): (Fneq): (Fgtr): (Fplus): (Fminus): (Ftimes): (Fdiv): (Fquo): (Fmax): (Fmin): (Flogand): (Flogior): (Flogxor): * editfns.c (Fsave_excursion): (Fsave_current_buffer): (Fencode_time): (Finsert): (Finsert_before_markers): (Fsave_restriction): (Fformat): * elhash.c (Fmake_hash_table): * eval.c (Fdefun): (Fdefmacro): (Fcatch): (Funwind_protect): (Fcall_with_condition_handler): (Ffuncall): (Fapply): (Frun_hooks): * fns.c (Fappend): (Fconcat): (Fvconcat): (Fbvconcat): (Fnconc): * print.c (Fwith_output_to_temp_buffer): * process.c (Fstart_process_internal): * window.c (Fsave_window_excursion): * widget.c (Fwidget_apply): Add argument information, in a form understood by #'function-arglist, to all these MANY or UNEVALLED (that is to say, special-operator) built-in functions.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 20 Sep 2009 21:29:00 +0100
parents 8b1d806afbb3
children 80d74fed5399
comparison
equal deleted inserted replaced
4692:dc3c2f298857 4693:80cd90837ac5
1292 XCDR (val) = cdr; 1292 XCDR (val) = cdr;
1293 return val; 1293 return val;
1294 } 1294 }
1295 1295
1296 DEFUN ("list", Flist, 0, MANY, 0, /* 1296 DEFUN ("list", Flist, 0, MANY, 0, /*
1297 Return a newly created list with specified arguments as elements. 1297 Return a newly created list with specified ARGS as elements.
1298 Any number of arguments, even zero arguments, are allowed. 1298 Any number of arguments, even zero arguments, are allowed.
1299
1300 arguments: (&rest ARGS)
1299 */ 1301 */
1300 (int nargs, Lisp_Object *args)) 1302 (int nargs, Lisp_Object *args))
1301 { 1303 {
1302 Lisp_Object val = Qnil; 1304 Lisp_Object val = Qnil;
1303 Lisp_Object *argp = args + nargs; 1305 Lisp_Object *argp = args + nargs;
1615 CONCHECK_NATNUM (length); 1617 CONCHECK_NATNUM (length);
1616 return make_vector (XINT (length), object); 1618 return make_vector (XINT (length), object);
1617 } 1619 }
1618 1620
1619 DEFUN ("vector", Fvector, 0, MANY, 0, /* 1621 DEFUN ("vector", Fvector, 0, MANY, 0, /*
1620 Return a newly created vector with specified arguments as elements. 1622 Return a newly created vector with specified ARGS as elements.
1621 Any number of arguments, even zero arguments, are allowed. 1623 Any number of arguments, even zero arguments, are allowed.
1624
1625 arguments: (&rest ARGS)
1622 */ 1626 */
1623 (int nargs, Lisp_Object *args)) 1627 (int nargs, Lisp_Object *args))
1624 { 1628 {
1625 Lisp_Vector *vecp = make_vector_internal (nargs); 1629 Lisp_Vector *vecp = make_vector_internal (nargs);
1626 Lisp_Object *p = vector_data (vecp); 1630 Lisp_Object *p = vector_data (vecp);
1796 1800
1797 return make_bit_vector (XINT (length), bit); 1801 return make_bit_vector (XINT (length), bit);
1798 } 1802 }
1799 1803
1800 DEFUN ("bit-vector", Fbit_vector, 0, MANY, 0, /* 1804 DEFUN ("bit-vector", Fbit_vector, 0, MANY, 0, /*
1801 Return a newly created bit vector with specified arguments as elements. 1805 Return a newly created bit vector with specified ARGS as elements.
1802 Any number of arguments, even zero arguments, are allowed. 1806 Any number of arguments, even zero arguments, are allowed.
1803 Each argument must be one of the integers 0 or 1. 1807 Each argument must be one of the integers 0 or 1.
1808
1809 arguments: (&rest ARGS)
1804 */ 1810 */
1805 (int nargs, Lisp_Object *args)) 1811 (int nargs, Lisp_Object *args))
1806 { 1812 {
1807 int i; 1813 int i;
1808 Lisp_Bit_Vector *p = make_bit_vector_internal (nargs); 1814 Lisp_Bit_Vector *p = make_bit_vector_internal (nargs);
1853 return wrap_compiled_function (f); 1859 return wrap_compiled_function (f);
1854 } 1860 }
1855 1861
1856 DEFUN ("make-byte-code", Fmake_byte_code, 4, MANY, 0, /* 1862 DEFUN ("make-byte-code", Fmake_byte_code, 4, MANY, 0, /*
1857 Return a new compiled-function object. 1863 Return a new compiled-function object.
1858 Usage: (arglist instructions constants stack-depth
1859 &optional doc-string interactive)
1860 Note that, unlike all other emacs-lisp functions, calling this with five 1864 Note that, unlike all other emacs-lisp functions, calling this with five
1861 arguments is NOT the same as calling it with six arguments, the last of 1865 arguments is NOT the same as calling it with six arguments, the last of
1862 which is nil. If the INTERACTIVE arg is specified as nil, then that means 1866 which is nil. If the INTERACTIVE arg is specified as nil, then that means
1863 that this function was defined with `(interactive)'. If the arg is not 1867 that this function was defined with `(interactive)'. If the arg is not
1864 specified, then that means the function is not interactive. 1868 specified, then that means the function is not interactive.
1865 This is terrible behavior which is retained for compatibility with old 1869 This is terrible behavior which is retained for compatibility with old
1866 `.elc' files which expect these semantics. 1870 `.elc' files which expect these semantics.
1871
1872 arguments: (ARGLIST INSTRUCTIONS CONSTANTS STACK-DEPTH &optional DOC-STRING INTERACTIVE)
1867 */ 1873 */
1868 (int nargs, Lisp_Object *args)) 1874 (int nargs, Lisp_Object *args))
1869 { 1875 {
1870 /* In a non-insane world this function would have this arglist... 1876 /* In a non-insane world this function would have this arglist...
1871 (arglist instructions constants stack_depth &optional doc_string interactive) 1877 (arglist instructions constants stack_depth &optional doc_string interactive)
2800 } 2806 }
2801 } 2807 }
2802 2808
2803 DEFUN ("string", Fstring, 0, MANY, 0, /* 2809 DEFUN ("string", Fstring, 0, MANY, 0, /*
2804 Concatenate all the argument characters and make the result a string. 2810 Concatenate all the argument characters and make the result a string.
2811
2812 arguments: (&rest ARGS)
2805 */ 2813 */
2806 (int nargs, Lisp_Object *args)) 2814 (int nargs, Lisp_Object *args))
2807 { 2815 {
2808 Ibyte *storage = alloca_ibytes (nargs * MAX_ICHAR_LEN); 2816 Ibyte *storage = alloca_ibytes (nargs * MAX_ICHAR_LEN);
2809 Ibyte *p = storage; 2817 Ibyte *p = storage;