User Tools

A PCRE internal error occured. This might be caused by a faulty plugin

====== Function TRANSLATE-LOGICAL-PATHNAME ====== ====Syntax==== * **translate-logical-pathname** //pathname// ''&key'' → //physical-pathname// ====Arguments and Values==== * //pathname// - a //[[CL:Glossary:pathname designator]]//, or a //[[CL:Glossary:logical pathname]]// //[[CL:Glossary:namestring]]//. * //physical-pathname// - a //[[CL:Glossary:physical pathname]]//. ====Description==== Translates //pathname// to a //[[CL:Glossary:physical pathname]]//, which it returns. If //pathname// is a //[[CL:Glossary:stream]]//, the //[[CL:Glossary:stream]]// can be either open or closed. **translate-logical-pathname** returns the same physical pathname after a file is closed as it did when the file was open. It is an error if //pathname// is a //[[CL:Glossary:stream]]// that is created with **[[CL:Functions:make-two-way-stream]]**, **[[CL:Functions:make-echo-stream]]**, **[[CL:Functions:make-broadcast-stream]]**, **[[CL:Functions:make-concatenated-stream]]**, **[[CL:Functions:make-string-input-stream]]**, **[[CL:Functions:make-string-output-stream]]**. If //pathname// is a //[[CL:Glossary:logical pathname]]// namestring, the host portion of the //[[CL:Glossary:logical pathname]]// namestring and its following //[[CL:Glossary:colon]]// are required. //pathname// is first coerced to a //[[CL:Glossary:pathname]]//. If the coerced //pathname// is a physical pathname, it is returned. If the coerced //pathname// is a //[[CL:Glossary:logical pathname]]//, the first matching translation (according to **[[CL:Functions:pathname-match-p]]**) of the //[[CL:Glossary:logical pathname]]// host is applied, as if by calling **[[CL:Functions:translate-pathname]]**. If the result is a //[[CL:Glossary:logical pathname]]//, this process is repeated. When the result is finally a physical pathname, it is returned. If no translation matches, an error is signaled. **translate-logical-pathname** might perform additional translations, typically to provide translation of file types to local naming conventions, to accomodate physical file systems with limited length names, or to deal with special character requirements such as translating hyphens to underscores or uppercase letters to lowercase. Any such additional translations are //[[CL:Glossary:implementation-defined]]//. Some //[[CL:Glossary:implementation|implementations]]// do no additional translations. There are no specified keyword arguments for **translate-logical-pathname**, but //[[CL:Glossary:implementation|implementations]]// are permitted to extend it by adding keyword arguments. ====Examples==== See **[[CL:Functions:logical-pathname-translations]]**. ====Affected By==== None. ====Exceptional Situations==== If //pathname// is incorrectly supplied, an error of type **[[CL:Types:type-error]]** is signaled. If no translation matches, an error of type **[[CL:Types:file-error]]** is signaled. ====See Also==== * **[[CL:Functions:logical-pathname|Function LOGICAL-PATHNAME]]** * **[[CL:Functions:logical-pathname-translations|Function LOGICAL-PATHNAME-TRANSLATIONS]]** * **[[CL:Types:logical-pathname|System Class LOGICAL-PATHNAME]]** * {\secref\FileSystemConcepts} * {\secref\PathnamesAsFilenames} ====Notes==== None. \issue{PATHNAME-LOGICAL:ADD} \issue{CLOSED-STREAM-FUNCTIONS:ALLOW-INQUIRY} \issue{PATHNAME-STREAM} \issue{FILE-OPEN-ERROR:SIGNAL-FILE-ERROR}