From 09a583c56576ad7183bdc0d39b2f2c9ee64359c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 24 Mar 2023 21:59:53 +0100 Subject: [PATCH] Proof-of-concept value validation. --- member-file.scm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/member-file.scm b/member-file.scm index ebe1436..a62d3db 100644 --- a/member-file.scm +++ b/member-file.scm @@ -269,9 +269,28 @@ (cons lines (dict-ref m esym '()))))) + ;; Check actual key error + (define (check-member-key-error key v) + (case key + ((nick) + (if (irregex-search (irregex " " 'u) v) + "Space in nick!" + #f)) + (else + #f))) + + ;; Adds error to the highlights + (define (add-member-error mr ln msg) + (dict-set mr member-file-error-symbol + (cons (list ln msg) + (dict-ref mr member-file-error-symbol '())))) + ;; Performs actual validation, optionally adding error to the list (define (validate-member-key m key v line-number) - m) + (let ((res (check-member-key-error key v))) + (if res + (add-member-error m line-number res) + m))) ;; Gets cons of nick and line number and if validation fails, adds ;; error to the error key.