comparison src/data.c @ 68758:13c1b7c5f555

* data.c (Findirect_function): Add NOERROR arg. All callers changed to pass Qnil for NOERROR. * keymap.c (current_minor_maps_error): Remove. (current_minor_maps): Pass Qt for NOERROR to Findirect_function instead of using internal_condition_case_1+current_minor_maps_error.
author Kim F. Storm <storm@cua.dk>
date Fri, 10 Feb 2006 00:00:31 +0000
parents 3bd95f4f2941
children eb6c6d7a4c7f
comparison
equal deleted inserted replaced
68757:3c76b1d6eff0 68758:13c1b7c5f555
1925 } 1925 }
1926 1926
1927 return hare; 1927 return hare;
1928 } 1928 }
1929 1929
1930 DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0, 1930 DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 2, 0,
1931 doc: /* Return the function at the end of OBJECT's function chain. 1931 doc: /* Return the function at the end of OBJECT's function chain.
1932 If OBJECT is a symbol, follow all function indirections and return the final 1932 If OBJECT is a symbol, follow all function indirections and return the final
1933 function binding. 1933 function binding.
1934 If OBJECT is not a symbol, just return it. 1934 If OBJECT is not a symbol, just return it.
1935 Signal a void-function error if the final symbol is unbound. 1935 If optional arg NOERROR is nil, signal a void-function error if
1936 the final symbol is unbound. Otherwise, just return nil is unbound.
1936 Signal a cyclic-function-indirection error if there is a loop in the 1937 Signal a cyclic-function-indirection error if there is a loop in the
1937 function chain of symbols. */) 1938 function chain of symbols. */)
1938 (object) 1939 (object, noerror)
1939 register Lisp_Object object; 1940 register Lisp_Object object;
1940 { 1941 {
1941 Lisp_Object result; 1942 Lisp_Object result;
1942 1943
1943 result = indirect_function (object); 1944 result = indirect_function (object);
1944 1945
1945 if (EQ (result, Qunbound)) 1946 if (EQ (result, Qunbound))
1946 return Fsignal (Qvoid_function, Fcons (object, Qnil)); 1947 return (NILP (noerror)
1948 ? Fsignal (Qvoid_function, Fcons (object, Qnil))
1949 : Qnil);
1947 return result; 1950 return result;
1948 } 1951 }
1949 1952
1950 /* Extract and set vector and string elements */ 1953 /* Extract and set vector and string elements */
1951 1954