Nice code, Gile!
I had something similair but not as good as yours, btw heres another way to write your version:
; (Grread_Getstring_T "Type something: ")
(defun Grread_Getstring_T
( msg
/ grr Stop str
) '(
(13 .
(setq Stop T
)) ;_ enter )
)
)
)
)
)
)
str
); defun Grread_Getstring_T