emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-racket 90c38d6 121/191: A better solution to the fu


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-racket 90c38d6 121/191: A better solution to the funky filename problem
Date: Sun, 1 Aug 2021 18:32:12 -0400 (EDT)

branch: elpa/geiser-racket
commit 90c38d635d8ebfc005e24e236f34594b4e59dd54
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>

    A better solution to the funky filename problem
    
    So, the problem was that our regexp for a Racket prompt didn't take
    into account that filenames could contain white spaces: "@[^ ]*> ".  A
    simple solution was accepting them: "@[^>]+> " won't work because '>'
    is also a valid character in filenames, so we went for "@.*> ".
    
    The drawback is that finding the beginning of the prompt (e.g. in C-a)
    fails when you're writing things like:
    
       racket@foo bar.rkt> (> 2 3)
    
    because here comint believes that the prompt is "racket@foo bar.rkt> (> "
    
    And that could have side-effects elsewhere.  So what i've done is
    simply changing the way white-space is (not) printed in the prompt,
    substituting it by underscores.  That way, whe can go back to the
    initial regexp, comint doesn't get confused, and users can easily
    infer that "@foo_bar.rkt>" is actually referring to their
    "foo bar.rkt" file.
---
 geiser/user.rkt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/geiser/user.rkt b/geiser/user.rkt
index aef1862..b7519b2 100644
--- a/geiser/user.rkt
+++ b/geiser/user.rkt
@@ -1,6 +1,6 @@
 ;;; user.rkt -- global bindings visible to geiser users
 
-;; Copyright (C) 2010, 2011, 2012 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2010, 2011, 2012, 2013 Jose Antonio Ortega Ruiz
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the Modified BSD License. You should
@@ -87,8 +87,8 @@
 
 (define geiser-prompt
   (lambda ()
-    (printf "racket@~a> "
-            (namespace->module-name (current-namespace) (last-entered)))))
+    (let ([m (namespace->module-name (current-namespace) (last-entered))])
+      (printf "racket@~a> " (regexp-replace* " " m "_")))))
 
 (define (geiser-prompt-read prompt)
   (make-repl-reader (geiser-read prompt)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]