[armedbear-devel] :case :common
Pascal J. Bourguignon
pjb at informatimago.com
Sun Nov 7 04:02:12 UTC 2010
CLHS says:
19.2.2.1.2.2 Common Case in Pathname Components
For the functions in Figure 19-2, a value of :common for the :case
argument that these functions should receive and yield strings in
component values according to the following conventions:
* All uppercase means to use a file system's customary case.
* All lowercase means to use the opposite of the customary case.
* Mixed case represents itself.
Note that these conventions have been chosen in such a way that
translation from :local to :common and back to :local is
information-preserving.
[pjb at kuiper :0.0 lisp]$ abcl
Armed Bear Common Lisp 0.20.0
Java 1.6.0_22 Sun Microsystems Inc.
Java HotSpot(TM) Server VM
Low-level initialization completed in 0.265 seconds.
Startup completed in 0.718 seconds.
Type ":help" for a list of available commands.
CL-USER(1): (make-pathname :name "TEST" :type "LISP" :case :common)
#P"TEST.LISP"
CL-USER(2): (namestring (make-pathname :name "TEST" :type "LISP" :case :common))
"TEST.LISP"
I'm on a linux system on a ext3 file system. The customary case is
lower case (case significant on this particular file system, but
99.999% of the files on unix are lower case).
Therefore I would expect to get #P"test.lisp"
Notice that:
(make-pathname :name "test" :type "lisp" :case :common)
should produce #P"TEST.LISP"
and that:
(make-pathname :name "Test" :type "Lisp" :case :common)
should produce #P"Test.Lisp"
And that I understand "yeld strings in component values" to mean that
the processing should be done on each parameter independently.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
More information about the armedbear-devel
mailing list