DIRECTORY Rope USING [ROPE]; SystemNames: CEDAR DEFINITIONS ~ { ROPE: TYPE ~ Rope.ROPE; UserName: PROC RETURNS [ROPE]; MachineName: PROC RETURNS [ROPE]; Release: TYPE ~ { current, previous, next }; ReleaseName: PROC [release: Release ฌ $current] RETURNS [ROPE]; ReleaseDir: PROC [dir: ROPE ฌ NIL, release: Release ฌ $current] RETURNS [ROPE]; ReleaseSubDir: PROC [subDirs: ROPE ฌ NIL, release: Release ฌ $current] RETURNS [ROPE]; ReleaseOption: TYPE ~ {releaseDir, releaseSubDir, releaseOmitted}; MachineLocalDir: PROC [subDirs: ROPE ฌ NIL, option: ReleaseOption ฌ $releaseSubDir, release: Release ฌ $current] RETURNS [ROPE]; CedarDir: PROC [subDirs: ROPE ฌ NIL, release: Release ฌ $current, dir: ROPE ฌ NIL] RETURNS [ROPE]; SimpleHomeDirectory: PROC RETURNS [ROPE]; UserCedarDir: PROC [subDirs: ROPE, option: SystemNames.ReleaseOption ฌ $releaseOmitted, release: SystemNames.Release ฌ $current] RETURNS [ROPE]; }. าSystemNames.mesa Copyright ำ 1987, 1989, 1991 by Xerox Corporation. All rights reserved. Doug Wyatt, January 24, 1987 6:57:16 pm PST JKF September 13, 1988 3:14:50 pm PDT Willie-Sue, March 15, 1989 5:07:43 pm PST Willie-s, August 19, 1991 2:10 pm PDT Michael Plass, August 19, 1991 1:12 pm PDT ... returns the short name of the current user; "wyatt", for example. ... returns the short name of the current machine; "chorus", for example. ... returns the Cedar release number (without patch number) as a rope. Examples: ReleaseName[] --> "7.3" ReleaseName[$previous] --> "7.2" ... appends a release number to the directory as follows: Examples: ReleaseDir[] --> "Cedar7.3" ReleaseDir["DATools", $previous] --> "DATools7.2" ... inserts the release number in front of the subdirectory as follows: Examples: ReleaseSubDir[] --> "7.3" ReleaseSubDir["Top"] --> "7.3/Top" ReleaseSubDir["Foo/Bar", $previous] --> "7.2/Foo/Bar" Examples (for sunos & unix): LocalDir[] --> "/tmp/Cedar/7.3/" LocalDir["Commands"] --> "/tmp/Cedar/7.3/Commands/" LocalDir["Users/Wyatt", $releaseOmitted] --> "/tmp/Cedar/Users/Wyatt/" Examples: CedarDir[] --> "/Cedar7.3/" CedarDir["Top"] --> "/Cedar7.3/Top/" CedarDir["Top", $previous] --> "/Cedar7.2/Top/" CedarDir[dir: "CedarChest", subDirs: "Top"] --> "/CedarChest7.3/Top/" in the sunos world, this is the user's unix home directory, with a trailing / ... constructs a path in the current user's cedar home directory, which is .cedar (this is a directory in which programs can put files that the user does not need to know about; it can be a vux or an ux directory) Examples: UserCedarDir[] --> "~/.cedar/" UserCedarDir["tipc"] --> "~/.cedar/tipc/" UserCedarDir["System", $releaseDir] --> "~/.cedar/7.3/System/" สป•NewlineDelimiter –(cedarcode) style˜codešœ™Kšœ ฯeœ=™HK™+K™%K™)K™%K™*—K˜šฯk ˜ Kšœžœžœ˜—K˜šฯn œžœž œ˜"K˜Kšžœžœžœ˜˜K˜—šŸœžœžœžœ˜KšœE™EK˜—šŸ œžœžœžœ˜!KšœI™IK˜—K˜šœ žœ˜,K˜—šŸ œžœžœžœ˜?K™F™ K™K™ —K™—š Ÿ œžœžœžœžœžœ˜OK™9™ Kšœ ฯc™Kšœ1™1——K˜š Ÿ œžœ žœžœžœžœ˜VK™G™ Kšœ  ™Kšœ  ™"Kšœ5™5—K˜—šœžœ/˜BK˜—š Ÿœžœ žœžœGžœžœ˜€šœ™Kšœ  ™ Kšœ ™3Kšœ.  œ™F—K™—šŸœžœ žœžœ$žœžœžœžœ˜bšœ ™ Kšœ™Kšœ$™$Kšœ/™/KšœE™E—K™—šŸœžœžœžœ˜)K™MK˜—š Ÿ œžœ žœ`žœžœ˜Kšœึ™ึšœ ™ Kšœ ™Kšœ ™)Kšœ$ œ ™>——K˜Kšœ˜——…—ข /