aboutsummaryrefslogtreecommitdiffstats
path: root/src/fns.c
diff options
context:
space:
mode:
authorDan Nicolaescu2010-07-08 14:25:08 -0700
committerDan Nicolaescu2010-07-08 14:25:08 -0700
commit5842a27bbfb7efa6872824e501bc7ec98b631553 (patch)
treed173899af9cbed9d90d94cfc710e6ecc06dd1f6b /src/fns.c
parent71c44c04bb996abe77db8efd88255fde06532b10 (diff)
downloademacs-5842a27bbfb7efa6872824e501bc7ec98b631553.tar.gz
emacs-5842a27bbfb7efa6872824e501bc7ec98b631553.zip
Convert DEFUNs to standard C.
* src/alloc.c: Convert DEFUNs to standard C. * src/buffer.c: * src/bytecode.c: * src/callint.c: * src/callproc.c: * src/casefiddle.c: * src/casetab.c: * src/category.c: * src/character.c: * src/charset.c: * src/chartab.c: * src/cmds.c: * src/coding.c: * src/composite.c: * src/data.c: * src/dbusbind.c: * src/dired.c: * src/dispnew.c: * src/doc.c: * src/dosfns.c: * src/editfns.c: * src/emacs.c: * src/eval.c: * src/fileio.c: * src/filelock.c: * src/floatfns.c: * src/fns.c: * src/font.c: * src/fontset.c: * src/frame.c: * src/fringe.c: * src/image.c: * src/indent.c: * src/insdel.c: * src/keyboard.c: * src/keymap.c: * src/lread.c: * src/macros.c: * src/marker.c: * src/menu.c: * src/minibuf.c: * src/msdos.c: * src/nsfns.m: * src/nsmenu.m: * src/nsselect.m: * src/print.c: * src/process.c: * src/search.c: * src/sound.c: * src/syntax.c: * src/term.c: * src/terminal.c: * src/textprop.c: * src/undo.c: * src/w16select.c: * src/w32console.c: * src/w32fns.c: * src/w32font.c: * src/w32menu.c: * src/w32proc.c: * src/w32select.c: * src/window.c: * src/xdisp.c: * src/xfaces.c: * src/xfns.c: * src/xmenu.c: * src/xselect.c: * src/xsettings.c: * src/xsmfns.c: Likewise.
Diffstat (limited to 'src/fns.c')
-rw-r--r--src/fns.c268
1 files changed, 83 insertions, 185 deletions
diff --git a/src/fns.c b/src/fns.c
index 240c0834800..42e7a715f76 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -85,8 +85,7 @@ extern long time ();
85 85
86DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, 86DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0,
87 doc: /* Return the argument unchanged. */) 87 doc: /* Return the argument unchanged. */)
88 (arg) 88 (Lisp_Object arg)
89 Lisp_Object arg;
90{ 89{
91 return arg; 90 return arg;
92} 91}
@@ -98,8 +97,7 @@ All integers representable in Lisp are equally likely.
98With positive integer LIMIT, return random number in interval [0,LIMIT). 97With positive integer LIMIT, return random number in interval [0,LIMIT).
99With argument t, set the random number seed from the current time and pid. 98With argument t, set the random number seed from the current time and pid.
100Other values of LIMIT are ignored. */) 99Other values of LIMIT are ignored. */)
101 (limit) 100 (Lisp_Object limit)
102 Lisp_Object limit;
103{ 101{
104 EMACS_INT val; 102 EMACS_INT val;
105 Lisp_Object lispy_val; 103 Lisp_Object lispy_val;
@@ -135,8 +133,7 @@ A byte-code function object is also allowed.
135If the string contains multibyte characters, this is not necessarily 133If the string contains multibyte characters, this is not necessarily
136the number of bytes in the string; it is the number of characters. 134the number of bytes in the string; it is the number of characters.
137To get the number of bytes, use `string-bytes'. */) 135To get the number of bytes, use `string-bytes'. */)
138 (sequence) 136 (register Lisp_Object sequence)
139 register Lisp_Object sequence;
140{ 137{
141 register Lisp_Object val; 138 register Lisp_Object val;
142 register int i; 139 register int i;
@@ -186,8 +183,7 @@ DEFUN ("safe-length", Fsafe_length, Ssafe_length, 1, 1, 0,
186This function never gets an error. If LIST is not really a list, 183This function never gets an error. If LIST is not really a list,
187it returns 0. If LIST is circular, it returns a finite value 184it returns 0. If LIST is circular, it returns a finite value
188which is at least the number of distinct elements. */) 185which is at least the number of distinct elements. */)
189 (list) 186 (Lisp_Object list)
190 Lisp_Object list;
191{ 187{
192 Lisp_Object tail, halftail, length; 188 Lisp_Object tail, halftail, length;
193 int len = 0; 189 int len = 0;
@@ -210,8 +206,7 @@ which is at least the number of distinct elements. */)
210DEFUN ("string-bytes", Fstring_bytes, Sstring_bytes, 1, 1, 0, 206DEFUN ("string-bytes", Fstring_bytes, Sstring_bytes, 1, 1, 0,
211 doc: /* Return the number of bytes in STRING. 207 doc: /* Return the number of bytes in STRING.
212If STRING is multibyte, this may be greater than the length of STRING. */) 208If STRING is multibyte, this may be greater than the length of STRING. */)
213 (string) 209 (Lisp_Object string)
214 Lisp_Object string;
215{ 210{
216 CHECK_STRING (string); 211 CHECK_STRING (string);
217 return make_number (SBYTES (string)); 212 return make_number (SBYTES (string));
@@ -221,8 +216,7 @@ DEFUN ("string-equal", Fstring_equal, Sstring_equal, 2, 2, 0,
221 doc: /* Return t if two strings have identical contents. 216 doc: /* Return t if two strings have identical contents.
222Case is significant, but text properties are ignored. 217Case is significant, but text properties are ignored.
223Symbols are also allowed; their print names are used instead. */) 218Symbols are also allowed; their print names are used instead. */)
224 (s1, s2) 219 (register Lisp_Object s1, Lisp_Object s2)
225 register Lisp_Object s1, s2;
226{ 220{
227 if (SYMBOLP (s1)) 221 if (SYMBOLP (s1))
228 s1 = SYMBOL_NAME (s1); 222 s1 = SYMBOL_NAME (s1);
@@ -253,8 +247,7 @@ If string STR1 is less, the value is a negative number N;
253 - 1 - N is the number of characters that match at the beginning. 247 - 1 - N is the number of characters that match at the beginning.
254If string STR1 is greater, the value is a positive number N; 248If string STR1 is greater, the value is a positive number N;
255 N - 1 is the number of characters that match at the beginning. */) 249 N - 1 is the number of characters that match at the beginning. */)
256 (str1, start1, end1, str2, start2, end2, ignore_case) 250 (Lisp_Object str1, Lisp_Object start1, Lisp_Object end1, Lisp_Object str2, Lisp_Object start2, Lisp_Object end2, Lisp_Object ignore_case)
257 Lisp_Object str1, start1, end1, start2, str2, end2, ignore_case;
258{ 251{
259 register int end1_char, end2_char; 252 register int end1_char, end2_char;
260 register int i1, i1_byte, i2, i2_byte; 253 register int i1, i1_byte, i2, i2_byte;
@@ -345,8 +338,7 @@ DEFUN ("string-lessp", Fstring_lessp, Sstring_lessp, 2, 2, 0,
345 doc: /* Return t if first arg string is less than second in lexicographic order. 338 doc: /* Return t if first arg string is less than second in lexicographic order.
346Case is significant. 339Case is significant.
347Symbols are also allowed; their print names are used instead. */) 340Symbols are also allowed; their print names are used instead. */)
348 (s1, s2) 341 (register Lisp_Object s1, Lisp_Object s2)
349 register Lisp_Object s1, s2;
350{ 342{
351 register int end; 343 register int end;
352 register int i1, i1_byte, i2, i2_byte; 344 register int i1, i1_byte, i2, i2_byte;
@@ -415,9 +407,7 @@ The result is a list whose elements are the elements of all the arguments.
415Each argument may be a list, vector or string. 407Each argument may be a list, vector or string.
416The last argument is not copied, just used as the tail of the new list. 408The last argument is not copied, just used as the tail of the new list.
417usage: (append &rest SEQUENCES) */) 409usage: (append &rest SEQUENCES) */)
418 (nargs, args) 410 (int nargs, Lisp_Object *args)
419 int nargs;
420 Lisp_Object *args;
421{ 411{
422 return concat (nargs, args, Lisp_Cons, 1); 412 return concat (nargs, args, Lisp_Cons, 1);
423} 413}
@@ -427,9 +417,7 @@ DEFUN ("concat", Fconcat, Sconcat, 0, MANY, 0,
427The result is a string whose elements are the elements of all the arguments. 417The result is a string whose elements are the elements of all the arguments.
428Each argument may be a string or a list or vector of characters (integers). 418Each argument may be a string or a list or vector of characters (integers).
429usage: (concat &rest SEQUENCES) */) 419usage: (concat &rest SEQUENCES) */)
430 (nargs, args) 420 (int nargs, Lisp_Object *args)
431 int nargs;
432 Lisp_Object *args;
433{ 421{
434 return concat (nargs, args, Lisp_String, 0); 422 return concat (nargs, args, Lisp_String, 0);
435} 423}
@@ -439,9 +427,7 @@ DEFUN ("vconcat", Fvconcat, Svconcat, 0, MANY, 0,
439The result is a vector whose elements are the elements of all the arguments. 427The result is a vector whose elements are the elements of all the arguments.
440Each argument may be a list, vector or string. 428Each argument may be a list, vector or string.
441usage: (vconcat &rest SEQUENCES) */) 429usage: (vconcat &rest SEQUENCES) */)
442 (nargs, args) 430 (int nargs, Lisp_Object *args)
443 int nargs;
444 Lisp_Object *args;
445{ 431{
446 return concat (nargs, args, Lisp_Vectorlike, 0); 432 return concat (nargs, args, Lisp_Vectorlike, 0);
447} 433}
@@ -451,8 +437,7 @@ DEFUN ("copy-sequence", Fcopy_sequence, Scopy_sequence, 1, 1, 0,
451 doc: /* Return a copy of a list, vector, string or char-table. 437 doc: /* Return a copy of a list, vector, string or char-table.
452The elements of a list or vector are not copied; they are shared 438The elements of a list or vector are not copied; they are shared
453with the original. */) 439with the original. */)
454 (arg) 440 (Lisp_Object arg)
455 Lisp_Object arg;
456{ 441{
457 if (NILP (arg)) return arg; 442 if (NILP (arg)) return arg;
458 443
@@ -998,8 +983,7 @@ or entirely ASCII, it is returned unchanged. In particular, when
998STRING is unibyte and entirely ASCII, the returned string is unibyte. 983STRING is unibyte and entirely ASCII, the returned string is unibyte.
999\(When the characters are all ASCII, Emacs primitives will treat the 984\(When the characters are all ASCII, Emacs primitives will treat the
1000string the same way whether it is unibyte or multibyte.) */) 985string the same way whether it is unibyte or multibyte.) */)
1001 (string) 986 (Lisp_Object string)
1002 Lisp_Object string;
1003{ 987{
1004 CHECK_STRING (string); 988 CHECK_STRING (string);
1005 989
@@ -1013,8 +997,7 @@ Multibyte character codes are converted to unibyte according to
1013`nonascii-translation-table' or, if that is nil, `nonascii-insert-offset'. 997`nonascii-translation-table' or, if that is nil, `nonascii-insert-offset'.
1014If the lookup in the translation table fails, this function takes just 998If the lookup in the translation table fails, this function takes just
1015the low 8 bits of each character. */) 999the low 8 bits of each character. */)
1016 (string) 1000 (Lisp_Object string)
1017 Lisp_Object string;
1018{ 1001{
1019 CHECK_STRING (string); 1002 CHECK_STRING (string);
1020 1003
@@ -1028,8 +1011,7 @@ If STRING is unibyte, the result is STRING itself.
1028Otherwise it is a newly created string, with no text properties. 1011Otherwise it is a newly created string, with no text properties.
1029If STRING is multibyte and contains a character of charset 1012If STRING is multibyte and contains a character of charset
1030`eight-bit', it is converted to the corresponding single byte. */) 1013`eight-bit', it is converted to the corresponding single byte. */)
1031 (string) 1014 (Lisp_Object string)
1032 Lisp_Object string;
1033{ 1015{
1034 CHECK_STRING (string); 1016 CHECK_STRING (string);
1035 1017
@@ -1061,8 +1043,7 @@ Beware, this often doesn't really do what you think it does.
1061It is similar to (decode-coding-string STRING 'utf-8-emacs). 1043It is similar to (decode-coding-string STRING 'utf-8-emacs).
1062If you're not sure, whether to use `string-as-multibyte' or 1044If you're not sure, whether to use `string-as-multibyte' or
1063`string-to-multibyte', use `string-to-multibyte'. */) 1045`string-to-multibyte', use `string-to-multibyte'. */)
1064 (string) 1046 (Lisp_Object string)
1065 Lisp_Object string;
1066{ 1047{
1067 CHECK_STRING (string); 1048 CHECK_STRING (string);
1068 1049
@@ -1097,8 +1078,7 @@ the corresponding multibyte character of charset `eight-bit'.
1097This differs from `string-as-multibyte' by converting each byte of a correct 1078This differs from `string-as-multibyte' by converting each byte of a correct
1098utf-8 sequence to an eight-bit character, not just bytes that don't form a 1079utf-8 sequence to an eight-bit character, not just bytes that don't form a
1099correct sequence. */) 1080correct sequence. */)
1100 (string) 1081 (Lisp_Object string)
1101 Lisp_Object string;
1102{ 1082{
1103 CHECK_STRING (string); 1083 CHECK_STRING (string);
1104 1084
@@ -1113,8 +1093,7 @@ Otherwise it is a newly created string, with no text properties,
1113where each `eight-bit' character is converted to the corresponding byte. 1093where each `eight-bit' character is converted to the corresponding byte.
1114If STRING contains a non-ASCII, non-`eight-bit' character, 1094If STRING contains a non-ASCII, non-`eight-bit' character,
1115an error is signaled. */) 1095an error is signaled. */)
1116 (string) 1096 (Lisp_Object string)
1117 Lisp_Object string;
1118{ 1097{
1119 CHECK_STRING (string); 1098 CHECK_STRING (string);
1120 1099
@@ -1140,8 +1119,7 @@ but does not share the alist structure with ALIST.
1140The objects mapped (cars and cdrs of elements of the alist) 1119The objects mapped (cars and cdrs of elements of the alist)
1141are shared, however. 1120are shared, however.
1142Elements of ALIST that are not conses are also shared. */) 1121Elements of ALIST that are not conses are also shared. */)
1143 (alist) 1122 (Lisp_Object alist)
1144 Lisp_Object alist;
1145{ 1123{
1146 register Lisp_Object tem; 1124 register Lisp_Object tem;
1147 1125
@@ -1171,9 +1149,7 @@ to the end of STRING.
1171The STRING argument may also be a vector. In that case, the return 1149The STRING argument may also be a vector. In that case, the return
1172value is a new vector that contains the elements between index FROM 1150value is a new vector that contains the elements between index FROM
1173\(inclusive) and index TO (exclusive) of that vector argument. */) 1151\(inclusive) and index TO (exclusive) of that vector argument. */)
1174 (string, from, to) 1152 (Lisp_Object string, register Lisp_Object from, Lisp_Object to)
1175 Lisp_Object string;
1176 register Lisp_Object from, to;
1177{ 1153{
1178 Lisp_Object res; 1154 Lisp_Object res;
1179 int size; 1155 int size;
@@ -1242,9 +1218,7 @@ If FROM is nil or omitted, the substring starts at the beginning of STRING.
1242If FROM or TO is negative, it counts from the end. 1218If FROM or TO is negative, it counts from the end.
1243 1219
1244With one argument, just copy STRING without its properties. */) 1220With one argument, just copy STRING without its properties. */)
1245 (string, from, to) 1221 (Lisp_Object string, register Lisp_Object from, Lisp_Object to)
1246 Lisp_Object string;
1247 register Lisp_Object from, to;
1248{ 1222{
1249 int size, size_byte; 1223 int size, size_byte;
1250 int from_char, to_char; 1224 int from_char, to_char;
@@ -1331,9 +1305,7 @@ substring_both (Lisp_Object string, int from, int from_byte, int to, int to_byte
1331 1305
1332DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0, 1306DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0,
1333 doc: /* Take cdr N times on LIST, returns the result. */) 1307 doc: /* Take cdr N times on LIST, returns the result. */)
1334 (n, list) 1308 (Lisp_Object n, Lisp_Object list)
1335 Lisp_Object n;
1336 register Lisp_Object list;
1337{ 1309{
1338 register int i, num; 1310 register int i, num;
1339 CHECK_NUMBER (n); 1311 CHECK_NUMBER (n);
@@ -1350,16 +1322,14 @@ DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0,
1350DEFUN ("nth", Fnth, Snth, 2, 2, 0, 1322DEFUN ("nth", Fnth, Snth, 2, 2, 0,
1351 doc: /* Return the Nth element of LIST. 1323 doc: /* Return the Nth element of LIST.
1352N counts from zero. If LIST is not that long, nil is returned. */) 1324N counts from zero. If LIST is not that long, nil is returned. */)
1353 (n, list) 1325 (Lisp_Object n, Lisp_Object list)
1354 Lisp_Object n, list;
1355{ 1326{
1356 return Fcar (Fnthcdr (n, list)); 1327 return Fcar (Fnthcdr (n, list));
1357} 1328}
1358 1329
1359DEFUN ("elt", Felt, Selt, 2, 2, 0, 1330DEFUN ("elt", Felt, Selt, 2, 2, 0,
1360 doc: /* Return element of SEQUENCE at index N. */) 1331 doc: /* Return element of SEQUENCE at index N. */)
1361 (sequence, n) 1332 (register Lisp_Object sequence, Lisp_Object n)
1362 register Lisp_Object sequence, n;
1363{ 1333{
1364 CHECK_NUMBER (n); 1334 CHECK_NUMBER (n);
1365 if (CONSP (sequence) || NILP (sequence)) 1335 if (CONSP (sequence) || NILP (sequence))
@@ -1373,9 +1343,7 @@ DEFUN ("elt", Felt, Selt, 2, 2, 0,
1373DEFUN ("member", Fmember, Smember, 2, 2, 0, 1343DEFUN ("member", Fmember, Smember, 2, 2, 0,
1374doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `equal'. 1344doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `equal'.
1375The value is actually the tail of LIST whose car is ELT. */) 1345The value is actually the tail of LIST whose car is ELT. */)
1376 (elt, list) 1346 (register Lisp_Object elt, Lisp_Object list)
1377 register Lisp_Object elt;
1378 Lisp_Object list;
1379{ 1347{
1380 register Lisp_Object tail; 1348 register Lisp_Object tail;
1381 for (tail = list; CONSP (tail); tail = XCDR (tail)) 1349 for (tail = list; CONSP (tail); tail = XCDR (tail))
@@ -1393,8 +1361,7 @@ The value is actually the tail of LIST whose car is ELT. */)
1393DEFUN ("memq", Fmemq, Smemq, 2, 2, 0, 1361DEFUN ("memq", Fmemq, Smemq, 2, 2, 0,
1394doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eq'. 1362doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eq'.
1395The value is actually the tail of LIST whose car is ELT. */) 1363The value is actually the tail of LIST whose car is ELT. */)
1396 (elt, list) 1364 (register Lisp_Object elt, Lisp_Object list)
1397 register Lisp_Object elt, list;
1398{ 1365{
1399 while (1) 1366 while (1)
1400 { 1367 {
@@ -1420,9 +1387,7 @@ The value is actually the tail of LIST whose car is ELT. */)
1420DEFUN ("memql", Fmemql, Smemql, 2, 2, 0, 1387DEFUN ("memql", Fmemql, Smemql, 2, 2, 0,
1421doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eql'. 1388doc: /* Return non-nil if ELT is an element of LIST. Comparison done with `eql'.
1422The value is actually the tail of LIST whose car is ELT. */) 1389The value is actually the tail of LIST whose car is ELT. */)
1423 (elt, list) 1390 (register Lisp_Object elt, Lisp_Object list)
1424 register Lisp_Object elt;
1425 Lisp_Object list;
1426{ 1391{
1427 register Lisp_Object tail; 1392 register Lisp_Object tail;
1428 1393
@@ -1445,8 +1410,7 @@ DEFUN ("assq", Fassq, Sassq, 2, 2, 0,
1445 doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST. 1410 doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST.
1446The value is actually the first element of LIST whose car is KEY. 1411The value is actually the first element of LIST whose car is KEY.
1447Elements of LIST that are not conses are ignored. */) 1412Elements of LIST that are not conses are ignored. */)
1448 (key, list) 1413 (Lisp_Object key, Lisp_Object list)
1449 Lisp_Object key, list;
1450{ 1414{
1451 while (1) 1415 while (1)
1452 { 1416 {
@@ -1491,8 +1455,7 @@ assq_no_quit (Lisp_Object key, Lisp_Object list)
1491DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0, 1455DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0,
1492 doc: /* Return non-nil if KEY is `equal' to the car of an element of LIST. 1456 doc: /* Return non-nil if KEY is `equal' to the car of an element of LIST.
1493The value is actually the first element of LIST whose car equals KEY. */) 1457The value is actually the first element of LIST whose car equals KEY. */)
1494 (key, list) 1458 (Lisp_Object key, Lisp_Object list)
1495 Lisp_Object key, list;
1496{ 1459{
1497 Lisp_Object car; 1460 Lisp_Object car;
1498 1461
@@ -1543,9 +1506,7 @@ assoc_no_quit (Lisp_Object key, Lisp_Object list)
1543DEFUN ("rassq", Frassq, Srassq, 2, 2, 0, 1506DEFUN ("rassq", Frassq, Srassq, 2, 2, 0,
1544 doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST. 1507 doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST.
1545The value is actually the first element of LIST whose cdr is KEY. */) 1508The value is actually the first element of LIST whose cdr is KEY. */)
1546 (key, list) 1509 (register Lisp_Object key, Lisp_Object list)
1547 register Lisp_Object key;
1548 Lisp_Object list;
1549{ 1510{
1550 while (1) 1511 while (1)
1551 { 1512 {
@@ -1576,8 +1537,7 @@ The value is actually the first element of LIST whose cdr is KEY. */)
1576DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0, 1537DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0,
1577 doc: /* Return non-nil if KEY is `equal' to the cdr of an element of LIST. 1538 doc: /* Return non-nil if KEY is `equal' to the cdr of an element of LIST.
1578The value is actually the first element of LIST whose cdr equals KEY. */) 1539The value is actually the first element of LIST whose cdr equals KEY. */)
1579 (key, list) 1540 (Lisp_Object key, Lisp_Object list)
1580 Lisp_Object key, list;
1581{ 1541{
1582 Lisp_Object cdr; 1542 Lisp_Object cdr;
1583 1543
@@ -1616,9 +1576,7 @@ The modified LIST is returned. Comparison is done with `eq'.
1616If the first member of LIST is ELT, there is no way to remove it by side effect; 1576If the first member of LIST is ELT, there is no way to remove it by side effect;
1617therefore, write `(setq foo (delq element foo))' 1577therefore, write `(setq foo (delq element foo))'
1618to be sure of changing the value of `foo'. */) 1578to be sure of changing the value of `foo'. */)
1619 (elt, list) 1579 (register Lisp_Object elt, Lisp_Object list)
1620 register Lisp_Object elt;
1621 Lisp_Object list;
1622{ 1580{
1623 register Lisp_Object tail, prev; 1581 register Lisp_Object tail, prev;
1624 register Lisp_Object tem; 1582 register Lisp_Object tem;
@@ -1652,8 +1610,7 @@ If SEQ is not a list, or the first member of SEQ is ELT, deleting it
1652is not a side effect; it is simply using a different sequence. 1610is not a side effect; it is simply using a different sequence.
1653Therefore, write `(setq foo (delete element foo))' 1611Therefore, write `(setq foo (delete element foo))'
1654to be sure of changing the value of `foo'. */) 1612to be sure of changing the value of `foo'. */)
1655 (elt, seq) 1613 (Lisp_Object elt, Lisp_Object seq)
1656 Lisp_Object elt, seq;
1657{ 1614{
1658 if (VECTORP (seq)) 1615 if (VECTORP (seq))
1659 { 1616 {
@@ -1768,8 +1725,7 @@ to be sure of changing the value of `foo'. */)
1768DEFUN ("nreverse", Fnreverse, Snreverse, 1, 1, 0, 1725DEFUN ("nreverse", Fnreverse, Snreverse, 1, 1, 0,
1769 doc: /* Reverse LIST by modifying cdr pointers. 1726 doc: /* Reverse LIST by modifying cdr pointers.
1770Return the reversed list. */) 1727Return the reversed list. */)
1771 (list) 1728 (Lisp_Object list)
1772 Lisp_Object list;
1773{ 1729{
1774 register Lisp_Object prev, tail, next; 1730 register Lisp_Object prev, tail, next;
1775 1731
@@ -1791,8 +1747,7 @@ Return the reversed list. */)
1791DEFUN ("reverse", Freverse, Sreverse, 1, 1, 0, 1747DEFUN ("reverse", Freverse, Sreverse, 1, 1, 0,
1792 doc: /* Reverse LIST, copying. Return the reversed list. 1748 doc: /* Reverse LIST, copying. Return the reversed list.
1793See also the function `nreverse', which is used more often. */) 1749See also the function `nreverse', which is used more often. */)
1794 (list) 1750 (Lisp_Object list)
1795 Lisp_Object list;
1796{ 1751{
1797 Lisp_Object new; 1752 Lisp_Object new;
1798 1753
@@ -1812,8 +1767,7 @@ DEFUN ("sort", Fsort, Ssort, 2, 2, 0,
1812Returns the sorted list. LIST is modified by side effects. 1767Returns the sorted list. LIST is modified by side effects.
1813PREDICATE is called with two elements of LIST, and should return non-nil 1768PREDICATE is called with two elements of LIST, and should return non-nil
1814if the first element should sort before the second. */) 1769if the first element should sort before the second. */)
1815 (list, predicate) 1770 (Lisp_Object list, Lisp_Object predicate)
1816 Lisp_Object list, predicate;
1817{ 1771{
1818 Lisp_Object front, back; 1772 Lisp_Object front, back;
1819 register Lisp_Object len, tem; 1773 register Lisp_Object len, tem;
@@ -1905,9 +1859,7 @@ PLIST is a property list, which is a list of the form
1905\(PROP1 VALUE1 PROP2 VALUE2...). This function returns the value 1859\(PROP1 VALUE1 PROP2 VALUE2...). This function returns the value
1906corresponding to the given PROP, or nil if PROP is not one of the 1860corresponding to the given PROP, or nil if PROP is not one of the
1907properties on the list. This function never signals an error. */) 1861properties on the list. This function never signals an error. */)
1908 (plist, prop) 1862 (Lisp_Object plist, Lisp_Object prop)
1909 Lisp_Object plist;
1910 Lisp_Object prop;
1911{ 1863{
1912 Lisp_Object tail, halftail; 1864 Lisp_Object tail, halftail;
1913 1865
@@ -1937,8 +1889,7 @@ properties on the list. This function never signals an error. */)
1937DEFUN ("get", Fget, Sget, 2, 2, 0, 1889DEFUN ("get", Fget, Sget, 2, 2, 0,
1938 doc: /* Return the value of SYMBOL's PROPNAME property. 1890 doc: /* Return the value of SYMBOL's PROPNAME property.
1939This is the last value stored with `(put SYMBOL PROPNAME VALUE)'. */) 1891This is the last value stored with `(put SYMBOL PROPNAME VALUE)'. */)
1940 (symbol, propname) 1892 (Lisp_Object symbol, Lisp_Object propname)
1941 Lisp_Object symbol, propname;
1942{ 1893{
1943 CHECK_SYMBOL (symbol); 1894 CHECK_SYMBOL (symbol);
1944 return Fplist_get (XSYMBOL (symbol)->plist, propname); 1895 return Fplist_get (XSYMBOL (symbol)->plist, propname);
@@ -1952,10 +1903,7 @@ If PROP is already a property on the list, its value is set to VAL,
1952otherwise the new PROP VAL pair is added. The new plist is returned; 1903otherwise the new PROP VAL pair is added. The new plist is returned;
1953use `(setq x (plist-put x prop val))' to be sure to use the new value. 1904use `(setq x (plist-put x prop val))' to be sure to use the new value.
1954The PLIST is modified by side effects. */) 1905The PLIST is modified by side effects. */)
1955 (plist, prop, val) 1906 (Lisp_Object plist, register Lisp_Object prop, Lisp_Object val)
1956 Lisp_Object plist;
1957 register Lisp_Object prop;
1958 Lisp_Object val;
1959{ 1907{
1960 register Lisp_Object tail, prev; 1908 register Lisp_Object tail, prev;
1961 Lisp_Object newcell; 1909 Lisp_Object newcell;
@@ -1983,8 +1931,7 @@ The PLIST is modified by side effects. */)
1983DEFUN ("put", Fput, Sput, 3, 3, 0, 1931DEFUN ("put", Fput, Sput, 3, 3, 0,
1984 doc: /* Store SYMBOL's PROPNAME property with value VALUE. 1932 doc: /* Store SYMBOL's PROPNAME property with value VALUE.
1985It can be retrieved with `(get SYMBOL PROPNAME)'. */) 1933It can be retrieved with `(get SYMBOL PROPNAME)'. */)
1986 (symbol, propname, value) 1934 (Lisp_Object symbol, Lisp_Object propname, Lisp_Object value)
1987 Lisp_Object symbol, propname, value;
1988{ 1935{
1989 CHECK_SYMBOL (symbol); 1936 CHECK_SYMBOL (symbol);
1990 XSYMBOL (symbol)->plist 1937 XSYMBOL (symbol)->plist
@@ -1998,9 +1945,7 @@ PLIST is a property list, which is a list of the form
1998\(PROP1 VALUE1 PROP2 VALUE2...). This function returns the value 1945\(PROP1 VALUE1 PROP2 VALUE2...). This function returns the value
1999corresponding to the given PROP, or nil if PROP is not 1946corresponding to the given PROP, or nil if PROP is not
2000one of the properties on the list. */) 1947one of the properties on the list. */)
2001 (plist, prop) 1948 (Lisp_Object plist, Lisp_Object prop)
2002 Lisp_Object plist;
2003 Lisp_Object prop;
2004{ 1949{
2005 Lisp_Object tail; 1950 Lisp_Object tail;
2006 1951
@@ -2027,10 +1972,7 @@ If PROP is already a property on the list, its value is set to VAL,
2027otherwise the new PROP VAL pair is added. The new plist is returned; 1972otherwise the new PROP VAL pair is added. The new plist is returned;
2028use `(setq x (lax-plist-put x prop val))' to be sure to use the new value. 1973use `(setq x (lax-plist-put x prop val))' to be sure to use the new value.
2029The PLIST is modified by side effects. */) 1974The PLIST is modified by side effects. */)
2030 (plist, prop, val) 1975 (Lisp_Object plist, register Lisp_Object prop, Lisp_Object val)
2031 Lisp_Object plist;
2032 register Lisp_Object prop;
2033 Lisp_Object val;
2034{ 1976{
2035 register Lisp_Object tail, prev; 1977 register Lisp_Object tail, prev;
2036 Lisp_Object newcell; 1978 Lisp_Object newcell;
@@ -2058,8 +2000,7 @@ The PLIST is modified by side effects. */)
2058DEFUN ("eql", Feql, Seql, 2, 2, 0, 2000DEFUN ("eql", Feql, Seql, 2, 2, 0,
2059 doc: /* Return t if the two args are the same Lisp object. 2001 doc: /* Return t if the two args are the same Lisp object.
2060Floating-point numbers of equal value are `eql', but they may not be `eq'. */) 2002Floating-point numbers of equal value are `eql', but they may not be `eq'. */)
2061 (obj1, obj2) 2003 (Lisp_Object obj1, Lisp_Object obj2)
2062 Lisp_Object obj1, obj2;
2063{ 2004{
2064 if (FLOATP (obj1)) 2005 if (FLOATP (obj1))
2065 return internal_equal (obj1, obj2, 0, 0) ? Qt : Qnil; 2006 return internal_equal (obj1, obj2, 0, 0) ? Qt : Qnil;
@@ -2075,8 +2016,7 @@ Vectors and strings are compared element by element.
2075Numbers are compared by value, but integers cannot equal floats. 2016Numbers are compared by value, but integers cannot equal floats.
2076 (Use `=' if you want integers and floats to be able to be equal.) 2017 (Use `=' if you want integers and floats to be able to be equal.)
2077Symbols must match exactly. */) 2018Symbols must match exactly. */)
2078 (o1, o2) 2019 (register Lisp_Object o1, Lisp_Object o2)
2079 register Lisp_Object o1, o2;
2080{ 2020{
2081 return internal_equal (o1, o2, 0, 0) ? Qt : Qnil; 2021 return internal_equal (o1, o2, 0, 0) ? Qt : Qnil;
2082} 2022}
@@ -2085,8 +2025,7 @@ DEFUN ("equal-including-properties", Fequal_including_properties, Sequal_includi
2085 doc: /* Return t if two Lisp objects have similar structure and contents. 2025 doc: /* Return t if two Lisp objects have similar structure and contents.
2086This is like `equal' except that it compares the text properties 2026This is like `equal' except that it compares the text properties
2087of strings. (`equal' ignores text properties.) */) 2027of strings. (`equal' ignores text properties.) */)
2088 (o1, o2) 2028 (register Lisp_Object o1, Lisp_Object o2)
2089 register Lisp_Object o1, o2;
2090{ 2029{
2091 return internal_equal (o1, o2, 0, 1) ? Qt : Qnil; 2030 return internal_equal (o1, o2, 0, 1) ? Qt : Qnil;
2092} 2031}
@@ -2220,8 +2159,7 @@ internal_equal (register Lisp_Object o1, register Lisp_Object o2, int depth, int
2220DEFUN ("fillarray", Ffillarray, Sfillarray, 2, 2, 0, 2159DEFUN ("fillarray", Ffillarray, Sfillarray, 2, 2, 0,
2221 doc: /* Store each element of ARRAY with ITEM. 2160 doc: /* Store each element of ARRAY with ITEM.
2222ARRAY is a vector, string, char-table, or bool-vector. */) 2161ARRAY is a vector, string, char-table, or bool-vector. */)
2223 (array, item) 2162 (Lisp_Object array, Lisp_Object item)
2224 Lisp_Object array, item;
2225{ 2163{
2226 register int size, index, charval; 2164 register int size, index, charval;
2227 if (VECTORP (array)) 2165 if (VECTORP (array))
@@ -2295,8 +2233,7 @@ DEFUN ("clear-string", Fclear_string, Sclear_string,
2295 1, 1, 0, 2233 1, 1, 0,
2296 doc: /* Clear the contents of STRING. 2234 doc: /* Clear the contents of STRING.
2297This makes STRING unibyte and may change its length. */) 2235This makes STRING unibyte and may change its length. */)
2298 (string) 2236 (Lisp_Object string)
2299 Lisp_Object string;
2300{ 2237{
2301 int len; 2238 int len;
2302 CHECK_STRING (string); 2239 CHECK_STRING (string);
@@ -2321,9 +2258,7 @@ DEFUN ("nconc", Fnconc, Snconc, 0, MANY, 0,
2321 doc: /* Concatenate any number of lists by altering them. 2258 doc: /* Concatenate any number of lists by altering them.
2322Only the last argument is not altered, and need not be a list. 2259Only the last argument is not altered, and need not be a list.
2323usage: (nconc &rest LISTS) */) 2260usage: (nconc &rest LISTS) */)
2324 (nargs, args) 2261 (int nargs, Lisp_Object *args)
2325 int nargs;
2326 Lisp_Object *args;
2327{ 2262{
2328 register int argnum; 2263 register int argnum;
2329 register Lisp_Object tail, tem, val; 2264 register Lisp_Object tail, tem, val;
@@ -2444,8 +2379,7 @@ DEFUN ("mapconcat", Fmapconcat, Smapconcat, 3, 3, 0,
2444In between each pair of results, stick in SEPARATOR. Thus, " " as 2379In between each pair of results, stick in SEPARATOR. Thus, " " as
2445SEPARATOR results in spaces between the values returned by FUNCTION. 2380SEPARATOR results in spaces between the values returned by FUNCTION.
2446SEQUENCE may be a list, a vector, a bool-vector, or a string. */) 2381SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
2447 (function, sequence, separator) 2382 (Lisp_Object function, Lisp_Object sequence, Lisp_Object separator)
2448 Lisp_Object function, sequence, separator;
2449{ 2383{
2450 Lisp_Object len; 2384 Lisp_Object len;
2451 register int leni; 2385 register int leni;
@@ -2485,8 +2419,7 @@ DEFUN ("mapcar", Fmapcar, Smapcar, 2, 2, 0,
2485 doc: /* Apply FUNCTION to each element of SEQUENCE, and make a list of the results. 2419 doc: /* Apply FUNCTION to each element of SEQUENCE, and make a list of the results.
2486The result is a list just as long as SEQUENCE. 2420The result is a list just as long as SEQUENCE.
2487SEQUENCE may be a list, a vector, a bool-vector, or a string. */) 2421SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
2488 (function, sequence) 2422 (Lisp_Object function, Lisp_Object sequence)
2489 Lisp_Object function, sequence;
2490{ 2423{
2491 register Lisp_Object len; 2424 register Lisp_Object len;
2492 register int leni; 2425 register int leni;
@@ -2513,8 +2446,7 @@ DEFUN ("mapc", Fmapc, Smapc, 2, 2, 0,
2513 doc: /* Apply FUNCTION to each element of SEQUENCE for side effects only. 2446 doc: /* Apply FUNCTION to each element of SEQUENCE for side effects only.
2514Unlike `mapcar', don't accumulate the results. Return SEQUENCE. 2447Unlike `mapcar', don't accumulate the results. Return SEQUENCE.
2515SEQUENCE may be a list, a vector, a bool-vector, or a string. */) 2448SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
2516 (function, sequence) 2449 (Lisp_Object function, Lisp_Object sequence)
2517 Lisp_Object function, sequence;
2518{ 2450{
2519 register int leni; 2451 register int leni;
2520 2452
@@ -2540,8 +2472,7 @@ for more information. In this case, the useful bindings are `act', `skip',
2540 2472
2541Under a windowing system a dialog box will be used if `last-nonmenu-event' 2473Under a windowing system a dialog box will be used if `last-nonmenu-event'
2542is nil and `use-dialog-box' is non-nil. */) 2474is nil and `use-dialog-box' is non-nil. */)
2543 (prompt) 2475 (Lisp_Object prompt)
2544 Lisp_Object prompt;
2545{ 2476{
2546 register Lisp_Object obj, key, def, map; 2477 register Lisp_Object obj, key, def, map;
2547 register int answer; 2478 register int answer;
@@ -2689,8 +2620,7 @@ and can edit it until it has been confirmed.
2689 2620
2690Under a windowing system a dialog box will be used if `last-nonmenu-event' 2621Under a windowing system a dialog box will be used if `last-nonmenu-event'
2691is nil, and `use-dialog-box' is non-nil. */) 2622is nil, and `use-dialog-box' is non-nil. */)
2692 (prompt) 2623 (Lisp_Object prompt)
2693 Lisp_Object prompt;
2694{ 2624{
2695 register Lisp_Object ans; 2625 register Lisp_Object ans;
2696 Lisp_Object args[2]; 2626 Lisp_Object args[2];
@@ -2762,8 +2692,7 @@ An error is thrown if the load average can't be obtained. In some
2762cases making it work would require Emacs being installed setuid or 2692cases making it work would require Emacs being installed setuid or
2763setgid so that it can read kernel information, and that usually isn't 2693setgid so that it can read kernel information, and that usually isn't
2764advisable. */) 2694advisable. */)
2765 (use_floats) 2695 (Lisp_Object use_floats)
2766 Lisp_Object use_floats;
2767{ 2696{
2768 double load_ave[3]; 2697 double load_ave[3];
2769 int loads = getloadavg (load_ave, 3); 2698 int loads = getloadavg (load_ave, 3);
@@ -2794,8 +2723,7 @@ presence or absence of Emacs or environment extensions.
2794Use `provide' to declare that a feature is available. This function 2723Use `provide' to declare that a feature is available. This function
2795looks at the value of the variable `features'. The optional argument 2724looks at the value of the variable `features'. The optional argument
2796SUBFEATURE can be used to check a specific subfeature of FEATURE. */) 2725SUBFEATURE can be used to check a specific subfeature of FEATURE. */)
2797 (feature, subfeature) 2726 (Lisp_Object feature, Lisp_Object subfeature)
2798 Lisp_Object feature, subfeature;
2799{ 2727{
2800 register Lisp_Object tem; 2728 register Lisp_Object tem;
2801 CHECK_SYMBOL (feature); 2729 CHECK_SYMBOL (feature);
@@ -2809,8 +2737,7 @@ DEFUN ("provide", Fprovide, Sprovide, 1, 2, 0,
2809 doc: /* Announce that FEATURE is a feature of the current Emacs. 2737 doc: /* Announce that FEATURE is a feature of the current Emacs.
2810The optional argument SUBFEATURES should be a list of symbols listing 2738The optional argument SUBFEATURES should be a list of symbols listing
2811particular subfeatures supported in this version of FEATURE. */) 2739particular subfeatures supported in this version of FEATURE. */)
2812 (feature, subfeatures) 2740 (Lisp_Object feature, Lisp_Object subfeatures)
2813 Lisp_Object feature, subfeatures;
2814{ 2741{
2815 register Lisp_Object tem; 2742 register Lisp_Object tem;
2816 CHECK_SYMBOL (feature); 2743 CHECK_SYMBOL (feature);
@@ -2856,8 +2783,7 @@ If the optional third argument NOERROR is non-nil,
2856then return nil if the file is not found instead of signaling an error. 2783then return nil if the file is not found instead of signaling an error.
2857Normally the return value is FEATURE. 2784Normally the return value is FEATURE.
2858The normal messages at start and end of loading FILENAME are suppressed. */) 2785The normal messages at start and end of loading FILENAME are suppressed. */)
2859 (feature, filename, noerror) 2786 (Lisp_Object feature, Lisp_Object filename, Lisp_Object noerror)
2860 Lisp_Object feature, filename, noerror;
2861{ 2787{
2862 register Lisp_Object tem; 2788 register Lisp_Object tem;
2863 struct gcpro gcpro1, gcpro2; 2789 struct gcpro gcpro1, gcpro2;
@@ -2952,8 +2878,7 @@ PLIST is a property list, which is a list of the form
2952Unlike `plist-get', this allows you to distinguish between a missing 2878Unlike `plist-get', this allows you to distinguish between a missing
2953property and a property with the value nil. 2879property and a property with the value nil.
2954The value is actually the tail of PLIST whose car is PROP. */) 2880The value is actually the tail of PLIST whose car is PROP. */)
2955 (plist, prop) 2881 (Lisp_Object plist, Lisp_Object prop)
2956 Lisp_Object plist, prop;
2957{ 2882{
2958 while (CONSP (plist) && !EQ (XCAR (plist), prop)) 2883 while (CONSP (plist) && !EQ (XCAR (plist), prop))
2959 { 2884 {
@@ -2967,8 +2892,7 @@ The value is actually the tail of PLIST whose car is PROP. */)
2967DEFUN ("widget-put", Fwidget_put, Swidget_put, 3, 3, 0, 2892DEFUN ("widget-put", Fwidget_put, Swidget_put, 3, 3, 0,
2968 doc: /* In WIDGET, set PROPERTY to VALUE. 2893 doc: /* In WIDGET, set PROPERTY to VALUE.
2969The value can later be retrieved with `widget-get'. */) 2894The value can later be retrieved with `widget-get'. */)
2970 (widget, property, value) 2895 (Lisp_Object widget, Lisp_Object property, Lisp_Object value)
2971 Lisp_Object widget, property, value;
2972{ 2896{
2973 CHECK_CONS (widget); 2897 CHECK_CONS (widget);
2974 XSETCDR (widget, Fplist_put (XCDR (widget), property, value)); 2898 XSETCDR (widget, Fplist_put (XCDR (widget), property, value));
@@ -2979,8 +2903,7 @@ DEFUN ("widget-get", Fwidget_get, Swidget_get, 2, 2, 0,
2979 doc: /* In WIDGET, get the value of PROPERTY. 2903 doc: /* In WIDGET, get the value of PROPERTY.
2980The value could either be specified when the widget was created, or 2904The value could either be specified when the widget was created, or
2981later with `widget-put'. */) 2905later with `widget-put'. */)
2982 (widget, property) 2906 (Lisp_Object widget, Lisp_Object property)
2983 Lisp_Object widget, property;
2984{ 2907{
2985 Lisp_Object tmp; 2908 Lisp_Object tmp;
2986 2909
@@ -3006,9 +2929,7 @@ DEFUN ("widget-apply", Fwidget_apply, Swidget_apply, 2, MANY, 0,
3006 doc: /* Apply the value of WIDGET's PROPERTY to the widget itself. 2929 doc: /* Apply the value of WIDGET's PROPERTY to the widget itself.
3007ARGS are passed as extra arguments to the function. 2930ARGS are passed as extra arguments to the function.
3008usage: (widget-apply WIDGET PROPERTY &rest ARGS) */) 2931usage: (widget-apply WIDGET PROPERTY &rest ARGS) */)
3009 (nargs, args) 2932 (int nargs, Lisp_Object *args)
3010 int nargs;
3011 Lisp_Object *args;
3012{ 2933{
3013 /* This function can GC. */ 2934 /* This function can GC. */
3014 Lisp_Object newargs[3]; 2935 Lisp_Object newargs[3];
@@ -3047,8 +2968,7 @@ If the system can't provide such information through a call to
3047See also Info node `(libc)Locales'. 2968See also Info node `(libc)Locales'.
3048 2969
3049The data read from the system are decoded using `locale-coding-system'. */) 2970The data read from the system are decoded using `locale-coding-system'. */)
3050 (item) 2971 (Lisp_Object item)
3051 Lisp_Object item;
3052{ 2972{
3053 char *str = NULL; 2973 char *str = NULL;
3054#ifdef HAVE_LANGINFO_CODESET 2974#ifdef HAVE_LANGINFO_CODESET
@@ -3202,8 +3122,7 @@ DEFUN ("base64-encode-region", Fbase64_encode_region, Sbase64_encode_region,
3202Return the length of the encoded text. 3122Return the length of the encoded text.
3203Optional third argument NO-LINE-BREAK means do not break long lines 3123Optional third argument NO-LINE-BREAK means do not break long lines
3204into shorter lines. */) 3124into shorter lines. */)
3205 (beg, end, no_line_break) 3125 (Lisp_Object beg, Lisp_Object end, Lisp_Object no_line_break)
3206 Lisp_Object beg, end, no_line_break;
3207{ 3126{
3208 char *encoded; 3127 char *encoded;
3209 int allength, length; 3128 int allength, length;
@@ -3262,8 +3181,7 @@ DEFUN ("base64-encode-string", Fbase64_encode_string, Sbase64_encode_string,
3262 doc: /* Base64-encode STRING and return the result. 3181 doc: /* Base64-encode STRING and return the result.
3263Optional second argument NO-LINE-BREAK means do not break long lines 3182Optional second argument NO-LINE-BREAK means do not break long lines
3264into shorter lines. */) 3183into shorter lines. */)
3265 (string, no_line_break) 3184 (Lisp_Object string, Lisp_Object no_line_break)
3266 Lisp_Object string, no_line_break;
3267{ 3185{
3268 int allength, length, encoded_length; 3186 int allength, length, encoded_length;
3269 char *encoded; 3187 char *encoded;
@@ -3401,8 +3319,7 @@ DEFUN ("base64-decode-region", Fbase64_decode_region, Sbase64_decode_region,
3401 doc: /* Base64-decode the region between BEG and END. 3319 doc: /* Base64-decode the region between BEG and END.
3402Return the length of the decoded text. 3320Return the length of the decoded text.
3403If the region can't be decoded, signal an error and don't modify the buffer. */) 3321If the region can't be decoded, signal an error and don't modify the buffer. */)
3404 (beg, end) 3322 (Lisp_Object beg, Lisp_Object end)
3405 Lisp_Object beg, end;
3406{ 3323{
3407 int ibeg, iend, length, allength; 3324 int ibeg, iend, length, allength;
3408 char *decoded; 3325 char *decoded;
@@ -3462,8 +3379,7 @@ If the region can't be decoded, signal an error and don't modify the buffer. */
3462DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string, 3379DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string,
3463 1, 1, 0, 3380 1, 1, 0,
3464 doc: /* Base64-decode STRING and return the result. */) 3381 doc: /* Base64-decode STRING and return the result. */)
3465 (string) 3382 (Lisp_Object string)
3466 Lisp_Object string;
3467{ 3383{
3468 char *decoded; 3384 char *decoded;
3469 int length, decoded_length; 3385 int length, decoded_length;
@@ -4497,8 +4413,7 @@ sxhash (Lisp_Object obj, int depth)
4497 4413
4498DEFUN ("sxhash", Fsxhash, Ssxhash, 1, 1, 0, 4414DEFUN ("sxhash", Fsxhash, Ssxhash, 1, 1, 0,
4499 doc: /* Compute a hash code for OBJ and return it as integer. */) 4415 doc: /* Compute a hash code for OBJ and return it as integer. */)
4500 (obj) 4416 (Lisp_Object obj)
4501 Lisp_Object obj;
4502{ 4417{
4503 unsigned hash = sxhash (obj, 0); 4418 unsigned hash = sxhash (obj, 0);
4504 return make_number (hash); 4419 return make_number (hash);
@@ -4537,9 +4452,7 @@ WEAK. WEAK t is equivalent to `key-and-value'. Default value of WEAK
4537is nil. 4452is nil.
4538 4453
4539usage: (make-hash-table &rest KEYWORD-ARGS) */) 4454usage: (make-hash-table &rest KEYWORD-ARGS) */)
4540 (nargs, args) 4455 (int nargs, Lisp_Object *args)
4541 int nargs;
4542 Lisp_Object *args;
4543{ 4456{
4544 Lisp_Object test, size, rehash_size, rehash_threshold, weak; 4457 Lisp_Object test, size, rehash_size, rehash_threshold, weak;
4545 Lisp_Object user_test, user_hash; 4458 Lisp_Object user_test, user_hash;
@@ -4616,8 +4529,7 @@ usage: (make-hash-table &rest KEYWORD-ARGS) */)
4616 4529
4617DEFUN ("copy-hash-table", Fcopy_hash_table, Scopy_hash_table, 1, 1, 0, 4530DEFUN ("copy-hash-table", Fcopy_hash_table, Scopy_hash_table, 1, 1, 0,
4618 doc: /* Return a copy of hash table TABLE. */) 4531 doc: /* Return a copy of hash table TABLE. */)
4619 (table) 4532 (Lisp_Object table)
4620 Lisp_Object table;
4621{ 4533{
4622 return copy_hash_table (check_hash_table (table)); 4534 return copy_hash_table (check_hash_table (table));
4623} 4535}
@@ -4625,8 +4537,7 @@ DEFUN ("copy-hash-table", Fcopy_hash_table, Scopy_hash_table, 1, 1, 0,
4625 4537
4626DEFUN ("hash-table-count", Fhash_table_count, Shash_table_count, 1, 1, 0, 4538DEFUN ("hash-table-count", Fhash_table_count, Shash_table_count, 1, 1, 0,
4627 doc: /* Return the number of elements in TABLE. */) 4539 doc: /* Return the number of elements in TABLE. */)
4628 (table) 4540 (Lisp_Object table)
4629 Lisp_Object table;
4630{ 4541{
4631 return make_number (check_hash_table (table)->count); 4542 return make_number (check_hash_table (table)->count);
4632} 4543}
@@ -4635,8 +4546,7 @@ DEFUN ("hash-table-count", Fhash_table_count, Shash_table_count, 1, 1, 0,
4635DEFUN ("hash-table-rehash-size", Fhash_table_rehash_size, 4546DEFUN ("hash-table-rehash-size", Fhash_table_rehash_size,
4636 Shash_table_rehash_size, 1, 1, 0, 4547 Shash_table_rehash_size, 1, 1, 0,
4637 doc: /* Return the current rehash size of TABLE. */) 4548 doc: /* Return the current rehash size of TABLE. */)
4638 (table) 4549 (Lisp_Object table)
4639 Lisp_Object table;
4640{ 4550{
4641 return check_hash_table (table)->rehash_size; 4551 return check_hash_table (table)->rehash_size;
4642} 4552}
@@ -4645,8 +4555,7 @@ DEFUN ("hash-table-rehash-size", Fhash_table_rehash_size,
4645DEFUN ("hash-table-rehash-threshold", Fhash_table_rehash_threshold, 4555DEFUN ("hash-table-rehash-threshold", Fhash_table_rehash_threshold,
4646 Shash_table_rehash_threshold, 1, 1, 0, 4556 Shash_table_rehash_threshold, 1, 1, 0,
4647 doc: /* Return the current rehash threshold of TABLE. */) 4557 doc: /* Return the current rehash threshold of TABLE. */)
4648 (table) 4558 (Lisp_Object table)
4649 Lisp_Object table;
4650{ 4559{
4651 return check_hash_table (table)->rehash_threshold; 4560 return check_hash_table (table)->rehash_threshold;
4652} 4561}
@@ -4657,8 +4566,7 @@ DEFUN ("hash-table-size", Fhash_table_size, Shash_table_size, 1, 1, 0,
4657The size can be used as an argument to `make-hash-table' to create 4566The size can be used as an argument to `make-hash-table' to create
4658a hash table than can hold as many elements of TABLE holds 4567a hash table than can hold as many elements of TABLE holds
4659without need for resizing. */) 4568without need for resizing. */)
4660 (table) 4569 (Lisp_Object table)
4661 Lisp_Object table;
4662{ 4570{
4663 struct Lisp_Hash_Table *h = check_hash_table (table); 4571 struct Lisp_Hash_Table *h = check_hash_table (table);
4664 return make_number (HASH_TABLE_SIZE (h)); 4572 return make_number (HASH_TABLE_SIZE (h));
@@ -4667,8 +4575,7 @@ without need for resizing. */)
4667 4575
4668DEFUN ("hash-table-test", Fhash_table_test, Shash_table_test, 1, 1, 0, 4576DEFUN ("hash-table-test", Fhash_table_test, Shash_table_test, 1, 1, 0,
4669 doc: /* Return the test TABLE uses. */) 4577 doc: /* Return the test TABLE uses. */)
4670 (table) 4578 (Lisp_Object table)
4671 Lisp_Object table;
4672{ 4579{
4673 return check_hash_table (table)->test; 4580 return check_hash_table (table)->test;
4674} 4581}
@@ -4677,8 +4584,7 @@ DEFUN ("hash-table-test", Fhash_table_test, Shash_table_test, 1, 1, 0,
4677DEFUN ("hash-table-weakness", Fhash_table_weakness, Shash_table_weakness, 4584DEFUN ("hash-table-weakness", Fhash_table_weakness, Shash_table_weakness,
4678 1, 1, 0, 4585 1, 1, 0,
4679 doc: /* Return the weakness of TABLE. */) 4586 doc: /* Return the weakness of TABLE. */)
4680 (table) 4587 (Lisp_Object table)
4681 Lisp_Object table;
4682{ 4588{
4683 return check_hash_table (table)->weak; 4589 return check_hash_table (table)->weak;
4684} 4590}
@@ -4686,8 +4592,7 @@ DEFUN ("hash-table-weakness", Fhash_table_weakness, Shash_table_weakness,
4686 4592
4687DEFUN ("hash-table-p", Fhash_table_p, Shash_table_p, 1, 1, 0, 4593DEFUN ("hash-table-p", Fhash_table_p, Shash_table_p, 1, 1, 0,
4688 doc: /* Return t if OBJ is a Lisp hash table object. */) 4594 doc: /* Return t if OBJ is a Lisp hash table object. */)
4689 (obj) 4595 (Lisp_Object obj)
4690 Lisp_Object obj;
4691{ 4596{
4692 return HASH_TABLE_P (obj) ? Qt : Qnil; 4597 return HASH_TABLE_P (obj) ? Qt : Qnil;
4693} 4598}
@@ -4695,8 +4600,7 @@ DEFUN ("hash-table-p", Fhash_table_p, Shash_table_p, 1, 1, 0,
4695 4600
4696DEFUN ("clrhash", Fclrhash, Sclrhash, 1, 1, 0, 4601DEFUN ("clrhash", Fclrhash, Sclrhash, 1, 1, 0,
4697 doc: /* Clear hash table TABLE and return it. */) 4602 doc: /* Clear hash table TABLE and return it. */)
4698 (table) 4603 (Lisp_Object table)
4699 Lisp_Object table;
4700{ 4604{
4701 hash_clear (check_hash_table (table)); 4605 hash_clear (check_hash_table (table));
4702 /* Be compatible with XEmacs. */ 4606 /* Be compatible with XEmacs. */
@@ -4707,8 +4611,7 @@ DEFUN ("clrhash", Fclrhash, Sclrhash, 1, 1, 0,
4707DEFUN ("gethash", Fgethash, Sgethash, 2, 3, 0, 4611DEFUN ("gethash", Fgethash, Sgethash, 2, 3, 0,
4708 doc: /* Look up KEY in TABLE and return its associated value. 4612 doc: /* Look up KEY in TABLE and return its associated value.
4709If KEY is not found, return DFLT which defaults to nil. */) 4613If KEY is not found, return DFLT which defaults to nil. */)
4710 (key, table, dflt) 4614 (Lisp_Object key, Lisp_Object table, Lisp_Object dflt)
4711 Lisp_Object key, table, dflt;
4712{ 4615{
4713 struct Lisp_Hash_Table *h = check_hash_table (table); 4616 struct Lisp_Hash_Table *h = check_hash_table (table);
4714 int i = hash_lookup (h, key, NULL); 4617 int i = hash_lookup (h, key, NULL);
@@ -4720,8 +4623,7 @@ DEFUN ("puthash", Fputhash, Sputhash, 3, 3, 0,
4720 doc: /* Associate KEY with VALUE in hash table TABLE. 4623 doc: /* Associate KEY with VALUE in hash table TABLE.
4721If KEY is already present in table, replace its current value with 4624If KEY is already present in table, replace its current value with
4722VALUE. */) 4625VALUE. */)
4723 (key, value, table) 4626 (Lisp_Object key, Lisp_Object value, Lisp_Object table)
4724 Lisp_Object key, value, table;
4725{ 4627{
4726 struct Lisp_Hash_Table *h = check_hash_table (table); 4628 struct Lisp_Hash_Table *h = check_hash_table (table);
4727 int i; 4629 int i;
@@ -4739,8 +4641,7 @@ VALUE. */)
4739 4641
4740DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0, 4642DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0,
4741 doc: /* Remove KEY from TABLE. */) 4643 doc: /* Remove KEY from TABLE. */)
4742 (key, table) 4644 (Lisp_Object key, Lisp_Object table)
4743 Lisp_Object key, table;
4744{ 4645{
4745 struct Lisp_Hash_Table *h = check_hash_table (table); 4646 struct Lisp_Hash_Table *h = check_hash_table (table);
4746 hash_remove_from_table (h, key); 4647 hash_remove_from_table (h, key);
@@ -4751,8 +4652,7 @@ DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0,
4751DEFUN ("maphash", Fmaphash, Smaphash, 2, 2, 0, 4652DEFUN ("maphash", Fmaphash, Smaphash, 2, 2, 0,
4752 doc: /* Call FUNCTION for all entries in hash table TABLE. 4653 doc: /* Call FUNCTION for all entries in hash table TABLE.
4753FUNCTION is called with two arguments, KEY and VALUE. */) 4654FUNCTION is called with two arguments, KEY and VALUE. */)
4754 (function, table) 4655 (Lisp_Object function, Lisp_Object table)
4755 Lisp_Object function, table;
4756{ 4656{
4757 struct Lisp_Hash_Table *h = check_hash_table (table); 4657 struct Lisp_Hash_Table *h = check_hash_table (table);
4758 Lisp_Object args[3]; 4658 Lisp_Object args[3];
@@ -4783,8 +4683,7 @@ both arguments are the same. HASH must be a function taking one
4783argument and return an integer that is the hash code of the argument. 4683argument and return an integer that is the hash code of the argument.
4784Hash code computation should use the whole value range of integers, 4684Hash code computation should use the whole value range of integers,
4785including negative integers. */) 4685including negative integers. */)
4786 (name, test, hash) 4686 (Lisp_Object name, Lisp_Object test, Lisp_Object hash)
4787 Lisp_Object name, test, hash;
4788{ 4687{
4789 return Fput (name, Qhash_table_test, list2 (test, hash)); 4688 return Fput (name, Qhash_table_test, list2 (test, hash));
4790} 4689}
@@ -4824,8 +4723,7 @@ command `prefer-coding-system') is used.
4824 4723
4825If NOERROR is non-nil, silently assume the `raw-text' coding if the 4724If NOERROR is non-nil, silently assume the `raw-text' coding if the
4826guesswork fails. Normally, an error is signaled in such case. */) 4725guesswork fails. Normally, an error is signaled in such case. */)
4827 (object, start, end, coding_system, noerror) 4726 (Lisp_Object object, Lisp_Object start, Lisp_Object end, Lisp_Object coding_system, Lisp_Object noerror)
4828 Lisp_Object object, start, end, coding_system, noerror;
4829{ 4727{
4830 unsigned char digest[16]; 4728 unsigned char digest[16];
4831 unsigned char value[33]; 4729 unsigned char value[33];