]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs-lisp-intro.texi (Digression into C): Update example.
authorGlenn Morris <rgm@gnu.org>
Sun, 3 Mar 2013 02:34:48 +0000 (18:34 -0800)
committerGlenn Morris <rgm@gnu.org>
Sun, 3 Mar 2013 02:34:48 +0000 (18:34 -0800)
doc/lispintro/ChangeLog
doc/lispintro/emacs-lisp-intro.texi

index 23a7d3d8e0ce3ab42971f59cfd781136b7001917..09be1b86c7e39e94ad0711cc4bc6d16a316bbd07 100644 (file)
@@ -1,3 +1,7 @@
+2013-03-03  Glenn Morris  <rgm@gnu.org>
+
+       * emacs-lisp-intro.texi (Digression into C): Update example.
+
 2012-12-22  Glenn Morris  <rgm@gnu.org>
 
        * Makefile.in (srcs): New variable, adding doclicense.texi.
index d00f36cda5863d281f84ce666ee62f0e987a2487..61e3154baa4cbb26c4a4ef16fc644050b53e600a 100644 (file)
@@ -9116,8 +9116,8 @@ Lisp; it is written in C and is one of the primitives of the GNU Emacs
 system.  Since it is very simple, I will digress briefly from Lisp and
 describe it here.
 
-@c GNU Emacs 22  in /usr/local/src/emacs/src/editfns.c
-@c the DEFUN for  buffer-substring-no-properties
+@c GNU Emacs 24  in src/editfns.c
+@c the DEFUN for  delete-and-extract-region
 
 @need 1500
 Like many of the other Emacs primitives,
@@ -9127,22 +9127,15 @@ like this:
 
 @smallexample
 @group
-DEFUN ("buffer-substring-no-properties", Fbuffer_substring_no_properties,
-       Sbuffer_substring_no_properties, 2, 2, 0,
-       doc: /* Return the characters of part of the buffer,
-without the text properties.
-The two arguments START and END are character positions;
-they can be in either order.  */)
-     (start, end)
-     Lisp_Object start, end;
+DEFUN ("delete-and-extract-region", Fdelete_and_extract_region,
+       Sdelete_and_extract_region, 2, 2, 0,
+       doc: /* Delete the text between START and END and return it.  */)
+       (Lisp_Object start, Lisp_Object end)
 @{
-  register int b, e;
-
   validate_region (&start, &end);
-  b = XINT (start);
-  e = XINT (end);
-
-  return make_buffer_string (b, e, 0);
+  if (XINT (start) == XINT (end))
+    return empty_unibyte_string;
+  return del_range_1 (XINT (start), XINT (end), 1, 1);
 @}
 @end group
 @end smallexample
@@ -9192,20 +9185,9 @@ and provides a prompt.
 
 @item
 The seventh part is a documentation string, just like the one for a
-function written in Emacs Lisp, except that every newline must be
-written explicitly as @samp{\n} followed by a backslash and carriage
-return.
-
-@need 1000
-Thus, the first two lines of documentation for  @code{goto-char} are
-written like this:
-
-@smallexample
-@group
-  "Set point to POSITION, a number or marker.\n\
-Beginning of buffer is position (point-min), end is (point-max)."
-@end group
-@end smallexample
+function written in Emacs Lisp.  This is written as a C comment.  (When
+you build Emacs, the program @command{lib-src/make-docfile} extracts
+these comments and uses them to make the ``real'' documentation.)
 @end itemize
 
 @need 1200
@@ -9218,15 +9200,15 @@ consists of the following four lines:
 @group
 validate_region (&start, &end);
 if (XINT (start) == XINT (end))
-  return build_string ("");
+  return empty_unibyte_string;
 return del_range_1 (XINT (start), XINT (end), 1, 1);
 @end group
 @end smallexample
 
-The   @code{validate_region} function checks whether the values
+The @code{validate_region} function checks whether the values
 passed as the beginning and end of the region are the proper type and
 are within range.  If the beginning and end positions are the same,
-then return and empty string.
+then return an empty string.
 
 The @code{del_range_1} function actually deletes the text.  It is a
 complex function we will not look into.  It updates the buffer and