(add-hook): Initialize default value and local value.
(run-hook-with-args-until-success): New function. (run-hook-with-args-until-failure): New function. (run-hooks): t as hook list element means run the global value of the variable as well as the local value. (run-hook-with-args): Likewise. (make-local-hook): New function. (add-hook, remove-hook): New arg LOCAL means modify local value. Test default-boundp as well as boundp.
Showing with 147 additions and 26 deletions