X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Frandom.lisp;fp=src%2Frandom.lisp;h=6cf070d3821247de8484940fd7733e3aeae5ff38;hb=576bc9b8fee8387b173cc728b6e22321c82413ed;hp=0f66f84ec41191b5911aa2129492b73fec47578c;hpb=9181201dc6822a12b605581385091b1591675dc4;p=fiveam.git diff --git a/src/random.lisp b/src/random.lisp index 0f66f84..6cf070d 100644 --- a/src/random.lisp +++ b/src/random.lisp @@ -120,8 +120,14 @@ returning true. This second run limit prevents that.") (min (1+ most-negative-fixnum))) (+ min (random (1+ (- max min))))) -(defgenerator gen-character (&key (code (gen-integer :min 0 :max (1- char-code-limit)))) - (code-char (funcall code))) +(defgenerator gen-character (&key (code (gen-integer :min 0 :max (1- char-code-limit))) + (alphanumericp nil)) + (if alphanumericp + (code-char (funcall code)) + (loop + for char = (code-char (funcall code)) + until (alphanumericp char) + finally (return char)))) (defun gen-string (&key (length (gen-integer :min 0 :max 80))