Mercurial > hg > xemacs-beta
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 |