summaryrefslogtreecommitdiff
path: root/utilities.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'utilities.lisp')
-rw-r--r--utilities.lisp12
1 files changed, 12 insertions, 0 deletions
diff --git a/utilities.lisp b/utilities.lisp
index b6cf16a..5644f2e 100644
--- a/utilities.lisp
+++ b/utilities.lisp
@@ -23,3 +23,15 @@
:external-format :utf-8))
:external-format :latin1))
+(defparameter +user-nick-chars+ "0123456789abcdefghijklmnopqrstuvwxyz-._")
+
+(defun/t valid-nick-p (nick)
+ :tests
+ (eql ("??????") nil)
+ (eql ("⚔") nil)
+ (eql ("cool_beans") t)
+ (eql ("COOOL_BEANS") t)
+ (eql ("COOL beans") nil)
+ :end
+ (unless (zerop (length nick))
+ (every (lambda (char) (find char +user-nick-chars+)) (string-downcase nick))))