From 0bb86febe1d925aa8e7b9948416d73fd4c106f8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20=C5=A0pa=C4=8Dek?= <petr.spacek@nic.cz>
Date: Tue, 18 Aug 2020 09:42:56 +0200
Subject: [PATCH] lua: clarify event.recurrent() API

It was rather confusing:
- event.after(0, ...) executed function immediatelly
- event.recurrent(0, ...) executed function immediatelly (seemingly worked)
  but stoped after the first execution, i.e. no recurrence took place.
---
 daemon/bindings/event.c   | 3 ++-
 daemon/bindings/event.rst | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/daemon/bindings/event.c b/daemon/bindings/event.c
index e53f228e9..0c5a6ba97 100644
--- a/daemon/bindings/event.c
+++ b/daemon/bindings/event.c
@@ -94,7 +94,8 @@ static int event_recurrent(lua_State *L)
 {
 	/* Check parameters */
 	int n = lua_gettop(L);
-	if (n < 2 || !lua_isnumber(L, 1) || !lua_isfunction(L, 2))
+	if (n < 2 || !lua_isnumber(L, 1)  || lua_tointeger(L, 1) == 0
+		|| !lua_isfunction(L, 2))
 		lua_error_p(L, "expected 'recurrent(number interval, function)'");
 
 	return event_sched(L, 0, lua_tointeger(L, 1));
diff --git a/daemon/bindings/event.rst b/daemon/bindings/event.rst
index 6150f2309..bb8abcdd7 100644
--- a/daemon/bindings/event.rst
+++ b/daemon/bindings/event.rst
@@ -25,7 +25,7 @@ For example, ``5 * hour`` represents five hours, or 5*60*60*100 milliseconds.
 
    :return: event id
 
-   Similar to :func:`event.after()`, periodically execute function after ``interval`` passes.
+   Execute function immediatelly and then periodically after each ``interval``.
 
    Example:
 
-- 
GitLab