В этом разделе мы документируем функцию run-hooks, которая используется для выполнения обычного хука. Мы также документируем функции для выполнения различных типов аномальных хуков.
Эта функция принимает одно или несколько имен переменных обычных хуков в качестве аргументов и выполняет каждый хук по очереди. Каждый аргумент должен быть символом, являющимся переменной обычного хука. Эти аргументы обрабатываются в указанном порядке.
Если переменная хука имеет значение, отличное от nil, это значение должно быть списком функций. run-hooks вызывает все функции по одной, без аргументов.
Значение переменной хука также может быть одной функцией — либо лямбда-выражением, либо символом с определением функции — которую вызывает run-hooks. Но это использование устарело.
Если переменная хука локальна для буфера, вместо глобальной переменной будет использоваться локальная переменная буфера. Однако, если локальная переменная буфера содержит элемент t, будет также выполнена глобальная переменная хука.
Эта функция выполняет аномальный хук, вызывая все функции хука в hook, передавая каждой из них аргументы args.
Эта функция выполняет аномальный хук, вызывая каждую функцию хука по очереди и останавливаясь, если одна из них завершается неудачей, возвращая nil. Каждой функции хука передаются аргументы args. Если эта функция останавливается из-за сбоя одной из функций хука, она возвращает nil; в противном случае она возвращает значение, отличное от nil.
Эта функция выполняет аномальный хук, вызывая каждую функцию хука и останавливаясь, если одна из них завершается успешно, возвращая значение, отличное от nil. Каждой функции хука передаются аргументы args. Если эта функция останавливается, потому что одна из функций хука возвращает значение, отличное от nil, она возвращает это значение; в противном случае она возвращает nil.