diff --git a/TeXmacs/progs/kernel/texmacs/tm-define-test.scm b/TeXmacs/progs/kernel/texmacs/tm-define-test.scm index c39bab7ac0..1e8d0b219e 100644 --- a/TeXmacs/progs/kernel/texmacs/tm-define-test.scm +++ b/TeXmacs/progs/kernel/texmacs/tm-define-test.scm @@ -30,6 +30,7 @@ (test "glue procedure" system 'system) (test "tm-defined" exec-interactive-command 'exec-interactive-command) + (test "anonymous function" (lambda (x) (+ x 1)) #f) (test "invalid input" 1 #f))) diff --git a/TeXmacs/progs/kernel/texmacs/tm-define.scm b/TeXmacs/progs/kernel/texmacs/tm-define.scm index e0e56489e5..f44d98fbb4 100644 --- a/TeXmacs/progs/kernel/texmacs/tm-define.scm +++ b/TeXmacs/progs/kernel/texmacs/tm-define.scm @@ -94,9 +94,10 @@ (define-public (procedure-symbol-name fun) (cond ((symbol? fun) fun) ((string? fun) (string->symbol fun)) - ((procedure? fun) - (with s-fun (ahash-ref tm-defined-name fun) - (if (symbol? s-fun) s-fun (string->symbol (object->string fun))))) + ((and (procedure? fun) (ahash-ref tm-defined-name fun)) + (ahash-ref tm-defined-name fun)) + ((and (procedure? fun) (string-alpha? (object->string fun))) + (string->symbol (object->string fun))) (else #f))) (define-public (procedure-string-name fun)