projects
/
fiveam.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix stupid bug in gen-character
[fiveam.git]
/
src
/
random.lisp
diff --git
a/src/random.lisp
b/src/random.lisp
index
d9c4d2b
..
a1f16bb
100644
(file)
--- a/
src/random.lisp
+++ b/
src/random.lisp
@@
-151,12
+151,16
@@
CODE must be a generator of random integers. ALPHANUMERICP, if
non-NIL, limits the returned chars to those which pass
alphanumericp."
(lambda ()
non-NIL, limits the returned chars to those which pass
alphanumericp."
(lambda ()
- (if alphanumericp
- (code-char (funcall code))
+ (if alphanumericp
(loop
(loop
+ for count upfrom 0
for char = (code-char (funcall code))
until (alphanumericp char)
for char = (code-char (funcall code))
until (alphanumericp char)
- finally (return char)))))
+ when (= 1000 count)
+ do (error "After 1000 iterations ~S has still not generated an alphanumeric character :(."
+ code)
+ finally (return char))
+ (code-char (funcall code)))))
(defun gen-string (&key (length (gen-integer :min 0 :max 80))
(elements (gen-character))
(defun gen-string (&key (length (gen-integer :min 0 :max 80))
(elements (gen-character))