summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-03-02 18:34:48 -0800
committerGlenn Morris <rgm@gnu.org>2013-03-02 18:34:48 -0800
commit2d7d23256f4bbf716ab81f49ce7cef5196da7092 (patch)
treeb4c2f585fd6e2d4fea8b577f2ba3e78dfe2e9a06
parent9bed73f34308231324c976e68f9bf413ba6d94cd (diff)
downloademacs-2d7d23256f4bbf716ab81f49ce7cef5196da7092.tar.gz
* emacs-lisp-intro.texi (Digression into C): Update example.
-rw-r--r--doc/lispintro/ChangeLog4
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi48
2 files changed, 19 insertions, 33 deletions
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 23a7d3d8e0c..09be1b86c7e 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -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.
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index d00f36cda58..61e3154baa4 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -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