[plt-scheme] Explode-path and normalized file paths

From: Jens Axel Søgaard (jensaxel at soegaard.net)
Date: Sat Sep 23 18:45:41 EDT 2006

Here is a fun error message:

  exception raised by exception handler:
     continuation application: attempted to cross a continuation barrier;
  original exception raised: explode-path: expects argument of type
  <path in normal form>; given
  #<path:c:/tmp/planet/source/cce\website.plt\current\private\require.ss>

Is it correct to assume that this means, the path

     c:/tmp/planet/source/cce\website.plt\current\private\require.ss

is normalized on Windows, but not on Linux?

And if so, is there another robust way to split the path?

I need it in this context:

   (define (document-number->url index d)
     (cond
       [(document-number->source-path index d)
        => (lambda (full-path)
             (apply string-append
                    planet-url-root
                    (intersperse "/"
                                 (map path->string
                                      (cddddr (explode-path
                                                full-path))))))]
       [else
        #f]))

-- 
Jens Axel Søgaard




Posted on the users mailing list.