comparison man/lispref/functions.texi @ 5089:99f8ebc082d9

Make #'substring an alias of #'subseq; give the latter the byte code. src/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> * fns.c (Fsubstring): Removed. * search.c (Freplace_match): * minibuf.c (Ftry_completion): * lisp.h: * keymap.c (ensure_meta_prefix_char_keymapp): * dired.c (user_name_completion, file_name_completion): * console-x.c (x_canonicalize_console_connection): * bytecode.c (Bsubseq): * bytecode-ops.h (subseq): Move #'substring to Lisp, as an alias for #'subseq; change all C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode to Bsubseq. Motivation; not accepting vectors in #'substring is incompatible with GNU, and Common Lisp prefers #'subseq, it has no #'substring. lisp/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> Move byte code #o117 to #'subseq, not #'substring. Make #'substring available as an alias for #'subseq in Lisp. * bytecomp.el (79, subseq, substring): * bytecomp.el (byte-compile-subseq): New. * update-elc.el (update-elc-chop-extension): Use #'subseq, not #'substring, the latter is not yet available. * subr.el (substring): New alias, to #'subseq. man/ChangeLog addition: 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> * lispref/tips.texi (Comment Tips): * lispref/text.texi (Text Properties): * lispref/strings.texi (Creating Strings): * lispref/processes.texi (Input to Processes): * lispref/functions.texi (Argument List): * lispref/extents.texi (Duplicable Extents): Move examples that used substring to using subseq; in strings.texi, do not change the examples, but document that in this XEmacs, it is an alias for subseq, and that there may be some incompatibilities if you depend on that.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 03 Mar 2010 18:40:12 +0000
parents 755ae5b97edb
children 62b9ef1ed4ac
comparison
equal deleted inserted replaced
5088:207dad9e74f7 5089:99f8ebc082d9
288 specifies three argument variables, so it must be called with three 288 specifies three argument variables, so it must be called with three
289 arguments: if you try to call it with only two arguments or four 289 arguments: if you try to call it with only two arguments or four
290 arguments, you get a @code{wrong-number-of-arguments} error. 290 arguments, you get a @code{wrong-number-of-arguments} error.
291 291
292 It is often convenient to write a function that allows certain 292 It is often convenient to write a function that allows certain
293 arguments to be omitted. For example, the function @code{substring} 293 arguments to be omitted. For example, the function @code{subseq}
294 accepts three arguments---a string, the start index and the end 294 accepts three arguments---a sequence, the start index and the end
295 index---but the third argument defaults to the @var{length} of the 295 index---but the third argument defaults to the @var{length} of the
296 string if you omit it. It is also convenient for certain functions to 296 sequence if you omit it. It is also convenient for certain functions to
297 accept an indefinite number of arguments, as the functions @code{list} 297 accept an indefinite number of arguments, as the functions @code{list}
298 and @code{+} do. 298 and @code{+} do.
299 299
300 @cindex optional arguments 300 @cindex optional arguments
301 @cindex rest arguments 301 @cindex rest arguments
329 If actual arguments for the optional and rest variables are omitted, 329 If actual arguments for the optional and rest variables are omitted,
330 then they always default to @code{nil}. There is no way for the 330 then they always default to @code{nil}. There is no way for the
331 function to distinguish between an explicit argument of @code{nil} and 331 function to distinguish between an explicit argument of @code{nil} and
332 an omitted argument. However, the body of the function is free to 332 an omitted argument. However, the body of the function is free to
333 consider @code{nil} an abbreviation for some other meaningful value. 333 consider @code{nil} an abbreviation for some other meaningful value.
334 This is what @code{substring} does; @code{nil} as the third argument to 334 This is what @code{subseq} does; @code{nil} as the third argument to
335 @code{substring} means to use the length of the string supplied. 335 @code{subseq} means to use the length of the sequence supplied.
336 336
337 @cindex CL note---default optional arg 337 @cindex CL note---default optional arg
338 @quotation 338 @quotation
339 @b{Common Lisp note:} Common Lisp allows the function to specify what 339 @b{Common Lisp note:} Common Lisp allows the function to specify what
340 default value to use when an optional argument is omitted; XEmacs Lisp 340 default value to use when an optional argument is omitted; XEmacs Lisp