Mercurial > hg > xemacs-beta
view man/new-users-guide/search.texi @ 4678:b5e1d4f6b66f
Make #'floor, #'ceiling, #'round, #'truncate conform to Common Lisp.
lisp/ChangeLog addition:
2009-08-11 Aidan Kehoe <kehoea@parhasard.net>
* cl-extra.el (ceiling*, floor*, round*, truncate*):
Implement these in terms of the C functions; mark them as
obsolete.
(mod*, rem*): Use #'nth-value with the C functions, not #'nth with
the CL emulation functions.
man/ChangeLog addition:
2009-08-11 Aidan Kehoe <kehoea@parhasard.net>
* lispref/numbers.texi (Bigfloat Basics):
Correct this documentation (ignoring for the moment that it breaks
off in mid-sentence).
tests/ChangeLog addition:
2009-08-11 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test the new Common Lisp-compatible rounding functions available in
C.
(generate-rounding-output): Provide a function useful for
generating the data for the rounding functions tests.
src/ChangeLog addition:
2009-08-11 Aidan Kehoe <kehoea@parhasard.net>
* floatfns.c (ROUNDING_CONVERT, CONVERT_WITH_NUMBER_TYPES)
(CONVERT_WITHOUT_NUMBER_TYPES, MAYBE_TWO_ARGS_BIGNUM)
(MAYBE_ONE_ARG_BIGNUM, MAYBE_TWO_ARGS_RATIO)
(MAYBE_ONE_ARG_RATIO, MAYBE_TWO_ARGS_BIGFLOAT)
(MAYBE_ONE_ARG_BIGFLOAT, MAYBE_EFF, MAYBE_CHAR_OR_MARKER):
New macros, used in the implementation of the rounding functions.
(ceiling_two_fixnum, ceiling_two_bignum, ceiling_two_ratio)
(ceiling_two_bigfloat, ceiling_one_ratio, ceiling_one_bigfloat)
(ceiling_two_float, ceiling_one_float, ceiling_one_mundane_arg)
(floor_two_fixnum, floor_two_bignum, floor_two_ratio)
(floor_two_bigfloat, floor_one_ratio, floor_one_bigfloat)
(floor_two_float, floor_one_mundane_arg, round_two_fixnum)
(round_two_bignum_1, round_two_bignum, round_two_ratio)
(round_one_bigfloat_1, round_two_bigfloat, round_one_ratio)
(round_one_bigfloat, round_two_float, round_one_float)
(round_one_mundane_arg, truncate_two_fixnum)
(truncate_two_bignum, truncate_two_ratio, truncate_two_bigfloat)
(truncate_one_ratio, truncate_one_bigfloat, truncate_two_float)
(truncate_one_float, truncate_one_mundane_arg):
New functions, used in the implementation of the rounding
functions.
(Fceiling, Ffloor, Fround, Ftruncate, Ffceiling, Fffloor)
(Ffround, Fftruncate):
Revise to fully support Common Lisp conventions. This means:
-- All functions have optional DIVISOR arguments
-- All functions return multiple values; see #'values
-- All functions do their arithmetic with the correct number types
according to the contamination rules.
-- #'round and #'fround always round towards the even number
in ambiguous cases.
* doprnt.c (emacs_doprnt_1):
* number.c (internal_coerce_number):
Call Ftruncate with two arguments, not one.
* floatfns.c (Ffloat):
Correct this, if NUMBER is a bignum.
* lisp.h:
Declare Ftruncate as taking two arguments.
* number.c:
Provide scratch_ratio2, init it appropriately.
* number.h:
Make scratch_ratio2 available.
* number.h (BIGFLOAT_ARITH_RETURN):
* number.h (BIGFLOAT_ARITH_RETURN1):
Correct these functions.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 11 Aug 2009 17:59:23 +0100 |
parents | f43f9ca6c7d9 |
children |
line wrap: on
line source
@comment node-name, next, previous, up @node Search and Replace, , Select and Move, Top @chapter Searching and Replacing @cindex searching @cindex replace @vindex case-fold-search Emacs provides commands for searching for occurrences of a particular string. The search is incremental i.e. it begins even before you complete typing the whole string. All searches in Emacs ignore the case of the text they are searching, i.e. if you are searching for "String", then "string" will also be one of the selections. If you want a case sensitive search select the @b{Case Sensitive Search} from the @b{Option} menu. You can also set the variable @code{case-fold-search} to @code{nil} for making searches case-sensitive. For information on setting variables, @xref{Setting Variables}. The two commands for searching for strings in XEmacs are: @table @kbd @item C-s @findex isearch-forward @kindex C-s This command will prompt you for a string to search : @example I-search: @end example @noindent If you type "myname" as the string to be searched, then Emacs will start searching for "m", "my", "myn", etc as you go on typing the whole string in the forward direction. The cursor will be on the matching string which has been found so far. If you find the correct match just hit @key{RET} or type @kbd{C-f} or @kbd{C-b} to set the cursor's position. If you find a matching string "myname" but you were looking for a different occurrence of it, use @kbd{C-s} again. If the search is unable to find the string, it will give you an error message. @item C-r @findex isearch-backward @kindex C-r This command will perform an incremental search in the backward direction. It will prompt you for a string name: @example I-search backward: @end example @noindent After you start typing the string name, it will search for the string in the same fashion as it does for @kbd{C-s} except that it will search in the backward direction. If it cannot find the string name, it will give you an error message. @end table If you make a mistake while typing the string names when you use the above commands, you can use the @key{DEL} key to erase characters. Each @key{DEL} will erase the last character. At any time if you want to quit the search, just type @kbd{C-g}. To do a non-incremental search i.e. to start the search only after you have typed the whole string you can use the following commands: @table @kbd @item C-s RET @dfn{string} RET This command will search for the specified string in the forward direction and will give an error message if the string is not found. @item C-r RET @dfn{string} RET This command will search for the specified string in the backward direction. @end table For information on how Emacs searches for words and regular expressions, @xref{Search,,,xemacs,XEmacs User's Manual}. To replace all occurrences of a string in Emacs, you can use the following command: @findex replace-string @example M-x replace-string @end example @noindent After you type @kbd{M-x replace-string}, you will be prompted for a string name to replace: @example Replace string: @end example @noindent After you type in a string name, for example "FOO" and press @key{RET}, you will see another prompt: @example Replace string FOO with: @end example @noindent Now type the string which you want to replace "FOO" with and press @key{RET}. After all the occurrences are replaced you will see the message "Done" in the echo area. If you want only some occurrences of the string to be replaced, use @kbd{M-x query-replace RET <string> RET <newstring> RET}. For more information, @xref{Query Replace,,,xemacs,XEmacs User's Manual}. XEmacs also provides a utility for checking spellings. Use @kbd{M-x ispell-buffer} to check for spellings in the whole buffer. You can also check the spelling of a word or a region. You can use menus to check for spellings: @noindent Evaluate the expression @code{(load "big-menubar")}. To evaluate this expression you need to hit the @key{META} or the @key{ESC} key twice and type in the expression in the echo area before hitting @key{RET}. You will get an extensive menubar. Select the @b{Spell Check} menu item from the @b{Utilities} menu for checking spellings.