comparison src/data.c @ 48961:39ba2cdf869e

(Fmakunbound, Ffmakunbound, Fmake_variable_buffer_local) (Fsetq_default, Fmake_local_variable, Fkill_local_variable) (Fmake_variable_frame_local, Faset, Fnumber_to_string) (Fstring_to_number, Fminus): Mention the returned value in the doc strings.
author Francesco Potortì <pot@gnu.org>
date Wed, 25 Dec 2002 23:27:27 +0000
parents a6906c113d14
children 7931f73b31db
comparison
equal deleted inserted replaced
48960:5491133e02c7 48961:39ba2cdf869e
626 CHECK_SYMBOL (symbol); 626 CHECK_SYMBOL (symbol);
627 return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt); 627 return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt);
628 } 628 }
629 629
630 DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, 630 DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0,
631 doc: /* Make SYMBOL's value be void. */) 631 doc: /* Make SYMBOL's value be void.
632 Return SYMBOL. */)
632 (symbol) 633 (symbol)
633 register Lisp_Object symbol; 634 register Lisp_Object symbol;
634 { 635 {
635 CHECK_SYMBOL (symbol); 636 CHECK_SYMBOL (symbol);
636 if (XSYMBOL (symbol)->constant) 637 if (XSYMBOL (symbol)->constant)
638 Fset (symbol, Qunbound); 639 Fset (symbol, Qunbound);
639 return symbol; 640 return symbol;
640 } 641 }
641 642
642 DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0, 643 DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0,
643 doc: /* Make SYMBOL's function definition be void. */) 644 doc: /* Make SYMBOL's function definition be void.
645 Return SYMBOL. */)
644 (symbol) 646 (symbol)
645 register Lisp_Object symbol; 647 register Lisp_Object symbol;
646 { 648 {
647 CHECK_SYMBOL (symbol); 649 CHECK_SYMBOL (symbol);
648 if (NILP (symbol) || EQ (symbol, Qt)) 650 if (NILP (symbol) || EQ (symbol, Qt))
791 while (XSYMBOL (hare)->indirect_variable) 793 while (XSYMBOL (hare)->indirect_variable)
792 { 794 {
793 hare = XSYMBOL (hare)->value; 795 hare = XSYMBOL (hare)->value;
794 if (!XSYMBOL (hare)->indirect_variable) 796 if (!XSYMBOL (hare)->indirect_variable)
795 break; 797 break;
796 798
797 hare = XSYMBOL (hare)->value; 799 hare = XSYMBOL (hare)->value;
798 tortoise = XSYMBOL (tortoise)->value; 800 tortoise = XSYMBOL (tortoise)->value;
799 801
800 if (EQ (hare, tortoise)) 802 if (EQ (hare, tortoise))
801 Fsignal (Qcyclic_variable_indirection, Fcons (symbol, Qnil)); 803 Fsignal (Qcyclic_variable_indirection, Fcons (symbol, Qnil));
939 void 941 void
940 swap_in_global_binding (symbol) 942 swap_in_global_binding (symbol)
941 Lisp_Object symbol; 943 Lisp_Object symbol;
942 { 944 {
943 Lisp_Object valcontents, cdr; 945 Lisp_Object valcontents, cdr;
944 946
945 valcontents = SYMBOL_VALUE (symbol); 947 valcontents = SYMBOL_VALUE (symbol);
946 if (!BUFFER_LOCAL_VALUEP (valcontents) 948 if (!BUFFER_LOCAL_VALUEP (valcontents)
947 && !SOME_BUFFER_LOCAL_VALUEP (valcontents)) 949 && !SOME_BUFFER_LOCAL_VALUEP (valcontents))
948 abort (); 950 abort ();
949 cdr = XBUFFER_LOCAL_VALUE (valcontents)->cdr; 951 cdr = XBUFFER_LOCAL_VALUE (valcontents)->cdr;
950 952
951 /* Unload the previously loaded binding. */ 953 /* Unload the previously loaded binding. */
952 Fsetcdr (XCAR (cdr), 954 Fsetcdr (XCAR (cdr),
953 do_symval_forwarding (XBUFFER_LOCAL_VALUE (valcontents)->realvalue)); 955 do_symval_forwarding (XBUFFER_LOCAL_VALUE (valcontents)->realvalue));
954 956
955 /* Select the global binding in the symbol. */ 957 /* Select the global binding in the symbol. */
956 XSETCAR (cdr, cdr); 958 XSETCAR (cdr, cdr);
957 store_symval_forwarding (symbol, valcontents, XCDR (cdr), NULL); 959 store_symval_forwarding (symbol, valcontents, XCDR (cdr), NULL);
958 960
959 /* Indicate that the global binding is set up now. */ 961 /* Indicate that the global binding is set up now. */
973 static Lisp_Object 975 static Lisp_Object
974 swap_in_symval_forwarding (symbol, valcontents) 976 swap_in_symval_forwarding (symbol, valcontents)
975 Lisp_Object symbol, valcontents; 977 Lisp_Object symbol, valcontents;
976 { 978 {
977 register Lisp_Object tem1; 979 register Lisp_Object tem1;
978 980
979 tem1 = XBUFFER_LOCAL_VALUE (valcontents)->buffer; 981 tem1 = XBUFFER_LOCAL_VALUE (valcontents)->buffer;
980 982
981 if (NILP (tem1) 983 if (NILP (tem1)
982 || current_buffer != XBUFFER (tem1) 984 || current_buffer != XBUFFER (tem1)
983 || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame 985 || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame
984 && ! EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame))) 986 && ! EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)))
985 { 987 {
986 if (XSYMBOL (symbol)->indirect_variable) 988 if (XSYMBOL (symbol)->indirect_variable)
987 symbol = indirect_variable (symbol); 989 symbol = indirect_variable (symbol);
988 990
989 /* Unload the previously loaded binding. */ 991 /* Unload the previously loaded binding. */
990 tem1 = XCAR (XBUFFER_LOCAL_VALUE (valcontents)->cdr); 992 tem1 = XCAR (XBUFFER_LOCAL_VALUE (valcontents)->cdr);
991 Fsetcdr (tem1, 993 Fsetcdr (tem1,
992 do_symval_forwarding (XBUFFER_LOCAL_VALUE (valcontents)->realvalue)); 994 do_symval_forwarding (XBUFFER_LOCAL_VALUE (valcontents)->realvalue));
993 /* Choose the new binding. */ 995 /* Choose the new binding. */
1027 find_symbol_value (symbol) 1029 find_symbol_value (symbol)
1028 Lisp_Object symbol; 1030 Lisp_Object symbol;
1029 { 1031 {
1030 register Lisp_Object valcontents; 1032 register Lisp_Object valcontents;
1031 register Lisp_Object val; 1033 register Lisp_Object val;
1032 1034
1033 CHECK_SYMBOL (symbol); 1035 CHECK_SYMBOL (symbol);
1034 valcontents = SYMBOL_VALUE (symbol); 1036 valcontents = SYMBOL_VALUE (symbol);
1035 1037
1036 if (BUFFER_LOCAL_VALUEP (valcontents) 1038 if (BUFFER_LOCAL_VALUEP (valcontents)
1037 || SOME_BUFFER_LOCAL_VALUEP (valcontents)) 1039 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
1140 && (NILP (Fkeywordp (symbol)) 1142 && (NILP (Fkeywordp (symbol))
1141 || !EQ (newval, SYMBOL_VALUE (symbol)))) 1143 || !EQ (newval, SYMBOL_VALUE (symbol))))
1142 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); 1144 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
1143 1145
1144 innercontents = valcontents = SYMBOL_VALUE (symbol); 1146 innercontents = valcontents = SYMBOL_VALUE (symbol);
1145 1147
1146 if (BUFFER_OBJFWDP (valcontents)) 1148 if (BUFFER_OBJFWDP (valcontents))
1147 { 1149 {
1148 int offset = XBUFFER_OBJFWD (valcontents)->offset; 1150 int offset = XBUFFER_OBJFWD (valcontents)->offset;
1149 int idx = PER_BUFFER_IDX (offset); 1151 int idx = PER_BUFFER_IDX (offset);
1150 if (idx > 0 1152 if (idx > 0
1363 /* If this variable is not always local in all buffers, 1365 /* If this variable is not always local in all buffers,
1364 set it in the buffers that don't nominally have a local value. */ 1366 set it in the buffers that don't nominally have a local value. */
1365 if (idx > 0) 1367 if (idx > 0)
1366 { 1368 {
1367 struct buffer *b; 1369 struct buffer *b;
1368 1370
1369 for (b = all_buffers; b; b = b->next) 1371 for (b = all_buffers; b; b = b->next)
1370 if (!PER_BUFFER_VALUE_P (b, idx)) 1372 if (!PER_BUFFER_VALUE_P (b, idx))
1371 PER_BUFFER_VALUE (b, offset) = value; 1373 PER_BUFFER_VALUE (b, offset) = value;
1372 } 1374 }
1373 return value; 1375 return value;
1393 } 1395 }
1394 1396
1395 DEFUN ("setq-default", Fsetq_default, Ssetq_default, 2, UNEVALLED, 0, 1397 DEFUN ("setq-default", Fsetq_default, Ssetq_default, 2, UNEVALLED, 0,
1396 doc: /* Set the default value of variable VAR to VALUE. 1398 doc: /* Set the default value of variable VAR to VALUE.
1397 VAR, the variable name, is literal (not evaluated); 1399 VAR, the variable name, is literal (not evaluated);
1398 VALUE is an expression and it is evaluated. 1400 VALUE is an expression: it is evaluated and its value returned.
1399 The default value of a variable is seen in buffers 1401 The default value of a variable is seen in buffers
1400 that do not have their own values for the variable. 1402 that do not have their own values for the variable.
1401 1403
1402 More generally, you can use multiple variables and values, as in 1404 More generally, you can use multiple variables and values, as in
1403 (setq-default SYMBOL VALUE SYMBOL VALUE...) 1405 (setq-default SYMBOL VALUE SYMBOL VALUE...)
1439 At any time, the value for the current buffer is in effect, 1441 At any time, the value for the current buffer is in effect,
1440 unless the variable has never been set in this buffer, 1442 unless the variable has never been set in this buffer,
1441 in which case the default value is in effect. 1443 in which case the default value is in effect.
1442 Note that binding the variable with `let', or setting it while 1444 Note that binding the variable with `let', or setting it while
1443 a `let'-style binding made in this buffer is in effect, 1445 a `let'-style binding made in this buffer is in effect,
1444 does not make the variable buffer-local. 1446 does not make the variable buffer-local. Return VARIABLE.
1445 1447
1446 The function `default-value' gets the default value and `set-default' sets it. */) 1448 The function `default-value' gets the default value and `set-default' sets it. */)
1447 (variable) 1449 (variable)
1448 register Lisp_Object variable; 1450 register Lisp_Object variable;
1449 { 1451 {
1483 1, 1, "vMake Local Variable: ", 1485 1, 1, "vMake Local Variable: ",
1484 doc: /* Make VARIABLE have a separate value in the current buffer. 1486 doc: /* Make VARIABLE have a separate value in the current buffer.
1485 Other buffers will continue to share a common default value. 1487 Other buffers will continue to share a common default value.
1486 \(The buffer-local value of VARIABLE starts out as the same value 1488 \(The buffer-local value of VARIABLE starts out as the same value
1487 VARIABLE previously had. If VARIABLE was void, it remains void.\) 1489 VARIABLE previously had. If VARIABLE was void, it remains void.\)
1488 See also `make-variable-buffer-local'. 1490 See also `make-variable-buffer-local'. Return VARIABLE.
1489 1491
1490 If the variable is already arranged to become local when set, 1492 If the variable is already arranged to become local when set,
1491 this function causes a local value to exist for this buffer, 1493 this function causes a local value to exist for this buffer,
1492 just as setting the variable would do. 1494 just as setting the variable would do.
1493 1495
1573 } 1575 }
1574 1576
1575 DEFUN ("kill-local-variable", Fkill_local_variable, Skill_local_variable, 1577 DEFUN ("kill-local-variable", Fkill_local_variable, Skill_local_variable,
1576 1, 1, "vKill Local Variable: ", 1578 1, 1, "vKill Local Variable: ",
1577 doc: /* Make VARIABLE no longer have a separate value in the current buffer. 1579 doc: /* Make VARIABLE no longer have a separate value in the current buffer.
1578 From now on the default value will apply in this buffer. */) 1580 From now on the default value will apply in this buffer. Return VARIABLE. */)
1579 (variable) 1581 (variable)
1580 register Lisp_Object variable; 1582 register Lisp_Object variable;
1581 { 1583 {
1582 register Lisp_Object tem, valcontents; 1584 register Lisp_Object tem, valcontents;
1583 1585
1634 1, 1, "vMake Variable Frame Local: ", 1636 1, 1, "vMake Variable Frame Local: ",
1635 doc: /* Enable VARIABLE to have frame-local bindings. 1637 doc: /* Enable VARIABLE to have frame-local bindings.
1636 When a frame-local binding exists in the current frame, 1638 When a frame-local binding exists in the current frame,
1637 it is in effect whenever the current buffer has no buffer-local binding. 1639 it is in effect whenever the current buffer has no buffer-local binding.
1638 A frame-local binding is actually a frame parameter value; 1640 A frame-local binding is actually a frame parameter value;
1639 thus, any given frame has a local binding for VARIABLE 1641 thus, any given frame has a local binding for VARIABLE if it has
1640 if it has a value for the frame parameter named VARIABLE. 1642 a value for the frame parameter named VARIABLE. Return VARIABLE.
1641 See `modify-frame-parameters' for how to set frame parameters. */) 1643 See `modify-frame-parameters' for how to set frame parameters. */)
1642 (variable) 1644 (variable)
1643 register Lisp_Object variable; 1645 register Lisp_Object variable;
1644 { 1646 {
1645 register Lisp_Object tem, valcontents, newval; 1647 register Lisp_Object tem, valcontents, newval;
1948 fns.c for base64 handling. */ 1950 fns.c for base64 handling. */
1949 #define MAX_ALLOCA 16*1024 1951 #define MAX_ALLOCA 16*1024
1950 1952
1951 DEFUN ("aset", Faset, Saset, 3, 3, 0, 1953 DEFUN ("aset", Faset, Saset, 3, 3, 0,
1952 doc: /* Store into the element of ARRAY at index IDX the value NEWELT. 1954 doc: /* Store into the element of ARRAY at index IDX the value NEWELT.
1953 ARRAY may be a vector, a string, a char-table or a bool-vector. 1955 Return NEWELT. ARRAY may be a vector, a string, a char-table or a
1954 IDX starts at 0. */) 1956 bool-vector. IDX starts at 0. */)
1955 (array, idx, newelt) 1957 (array, idx, newelt)
1956 register Lisp_Object array; 1958 register Lisp_Object array;
1957 Lisp_Object idx, newelt; 1959 Lisp_Object idx, newelt;
1958 { 1960 {
1959 register int idxval; 1961 register int idxval;
2265 bot = XCAR (bot); 2267 bot = XCAR (bot);
2266 return ((XINT (top) << 16) | XINT (bot)); 2268 return ((XINT (top) << 16) | XINT (bot));
2267 } 2269 }
2268 2270
2269 DEFUN ("number-to-string", Fnumber_to_string, Snumber_to_string, 1, 1, 0, 2271 DEFUN ("number-to-string", Fnumber_to_string, Snumber_to_string, 1, 1, 0,
2270 doc: /* Convert NUMBER to a string by printing it in decimal. 2272 doc: /* Return the decimal representation of NUMBER as a string.
2271 Uses a minus sign if negative. 2273 Uses a minus sign if negative.
2272 NUMBER may be an integer or a floating point number. */) 2274 NUMBER may be an integer or a floating point number. */)
2273 (number) 2275 (number)
2274 Lisp_Object number; 2276 Lisp_Object number;
2275 { 2277 {
2311 2313
2312 if (digit >= base) 2314 if (digit >= base)
2313 return -1; 2315 return -1;
2314 else 2316 else
2315 return digit; 2317 return digit;
2316 } 2318 }
2317 2319
2318 DEFUN ("string-to-number", Fstring_to_number, Sstring_to_number, 1, 2, 0, 2320 DEFUN ("string-to-number", Fstring_to_number, Sstring_to_number, 1, 2, 0,
2319 doc: /* Convert STRING to a number by parsing it as a decimal number. 2321 doc: /* Return a number obtained by parsing STRING as a decimal number.
2320 This parses both integers and floating point numbers. 2322 This parses both integers and floating point numbers.
2321 It ignores leading spaces and tabs. 2323 It ignores leading spaces and tabs.
2322 2324
2323 If BASE, interpret STRING as a number in that base. If BASE isn't 2325 If BASE, interpret STRING as a number in that base. If BASE isn't
2324 present, base 10 is used. BASE must be between 2 and 16 (inclusive). 2326 present, base 10 is used. BASE must be between 2 and 16 (inclusive).
2354 sign = -1; 2356 sign = -1;
2355 p++; 2357 p++;
2356 } 2358 }
2357 else if (*p == '+') 2359 else if (*p == '+')
2358 p++; 2360 p++;
2359 2361
2360 if (isfloat_string (p) && b == 10) 2362 if (isfloat_string (p) && b == 10)
2361 val = make_float (sign * atof (p)); 2363 val = make_float (sign * atof (p));
2362 else 2364 else
2363 { 2365 {
2364 double v = 0; 2366 double v = 0;
2557 { 2559 {
2558 return arith_driver (Aadd, nargs, args); 2560 return arith_driver (Aadd, nargs, args);
2559 } 2561 }
2560 2562
2561 DEFUN ("-", Fminus, Sminus, 0, MANY, 0, 2563 DEFUN ("-", Fminus, Sminus, 0, MANY, 0,
2562 doc: /* Negate number or subtract numbers or markers. 2564 doc: /* Negate number or subtract numbers or markers, returns the result.
2563 With one arg, negates it. With more than one arg, 2565 With one arg, negates it. With more than one arg,
2564 subtracts all but the first from the first. 2566 subtracts all but the first from the first.
2565 usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS) */) 2567 usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS) */)
2566 (nargs, args) 2568 (nargs, args)
2567 int nargs; 2569 int nargs;
3210 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function; 3212 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
3211 3213
3212 DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum, 3214 DEFVAR_LISP ("most-positive-fixnum", &Vmost_positive_fixnum,
3213 doc: /* The largest value that is representable in a Lisp integer. */); 3215 doc: /* The largest value that is representable in a Lisp integer. */);
3214 Vmost_positive_fixnum = make_number (MOST_POSITIVE_FIXNUM); 3216 Vmost_positive_fixnum = make_number (MOST_POSITIVE_FIXNUM);
3215 3217
3216 DEFVAR_LISP ("most-negative-fixnum", &Vmost_negative_fixnum, 3218 DEFVAR_LISP ("most-negative-fixnum", &Vmost_negative_fixnum,
3217 doc: /* The smallest value that is representable in a Lisp integer. */); 3219 doc: /* The smallest value that is representable in a Lisp integer. */);
3218 Vmost_negative_fixnum = make_number (MOST_NEGATIVE_FIXNUM); 3220 Vmost_negative_fixnum = make_number (MOST_NEGATIVE_FIXNUM);
3219 } 3221 }
3220 3222