Ignore:
Timestamp:
06/21/11 10:11:10 (11 years ago)
Author:
Mark Evenson
Message:

Fix problems with whitespace in JAR-PATHNAME.

For dealing with URI Encoding (also known as [Percent Encoding]() we
implement the following rules which were implicitly.

[Percent Encoding]: http://en.wikipedia.org/wiki/Percent-encoding

  1. All pathname components are represented "as is" without escaping.
  1. Namestrings are suitably escaped if the Pathname is a URL-PATHNAME

or a JAR-PATHNAME.

  1. Namestrings should all "round-trip":

(when (typep p 'pathname)

(equal (namestring p)

(namestring (pathname p))))

Users may use EXT:URI-ENCODE and EXT:URI-DECODE to access the escaping
rules in circumstances where they wish to manipulate PATHNAME
namestrings more directly.

All tests in JAR-PATHNAMES now pass.

Constructors for PATHNAME now produce ERROR rather than FILE-ERROR as
CLHS says "The type file-error consists of error conditions that occur
during an attempt to open or close a file, or during some low-level
transactions with a file system," which doesn't apply here.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/doc/design/pathnames/url-pathnames.markdown

    r13058 r13353  
    44    Mark Evenson
    55    Created:  25 MAR 2010
    6     Modified: 26 NOV 2010
     6    Modified: 21 JUN 2011
    77
    88Notes towards an implementation of URL references to be contained in
     
    120120A URL Pathname has type URL-PATHNAME, derived from PATHNAME.
    121121
     122
     123URI Encoding
     124------------
     125
     126For dealing with URI Encoding (also known as [Percent Encoding]() we
     127adopt the following rules
     128
     129[Percent Encoding]: http://en.wikipedia.org/wiki/Percent-encoding
     130
     1311.  All pathname components are represented "as is" without escaping.
     132
     1332.  Namestrings are suitably escaped if the Pathname is a URL-PATHNAME
     134    or a JAR-PATHNAME.
     135
     1363.  Namestrings should all "round-trip":
     137
     138    (when (typep p 'pathname)
     139       (equal (namestring p)
     140              (namestring (pathname p))))
     141
     142
    122143Status
    123144------
    124145
    125146This design has been implemented.
     147
    126148
    127149History
     
    131153  schemes including those nested with the "jar" scheme by like
    132154  aka. "jar:file:/location/of/some.jar!/".
     155
     15621 JUN 2011 Fixed implementation to properly handle URI encodings
     157  refering nested jar archive.
Note: See TracChangeset for help on using the changeset viewer.