"Lars T. Kyllingstad" <public@kyllingen.NOSPAMnet> wrote in message news:ikqabr$796$4...@digitalmars.com... > >> >> - Windows *does* have a concept of a home dir, so maybe tilde should be >> expanded even on Windows. Only problem though is that Windows has *two* >> main home dirs for each user: %HOMEPATH% for user-created files and >> %APPDATA% for application data. (And some others, but I don't think any >> of the others are appropriate for "~") So maybe there should be these >> three: >> >> 1. expandTilde: Exactly as it is now: expands ~ on posix, no-op >> on >> windows. >> >> 2. expandHomeDir: On posix: Expands "~" and "%HOMEDIR%" to the >> user's home directory. On windows: Expands "~" and "%HOMEDIR%" to >> whatever %HOMEDIR% is set to. >> >> 3. expandAppDataDir: On posix: Expands "~" and "%APPDATA%" to >> the >> user's home directory. On windows: Expands "~" and "%APPDATA%" to >> whatever %APPDATA% is set to. > > On POSIX you expect to be able to use ~ anywhere you're asked to input a > path/filename. Is this the case on Windows? Can you write %HOMEDIR% > \report.doc in Word's "Open" dialog, for instance? >
No, it's just an environment variable. In fact, it seems that % is a valid filename character (I wouldn't have even guessed that), so expanding any of the %BLAH% stuff in std.path is probably a bad idea after all. The expandTilde/expandHomeDir/expandAppDataDir working on *just* tilde might be a good idea though. Although maybe it would be better to just have expandTilde and then add these two functions instead: - getHomeDir(): Posix: Returns expanded form of "~". Widnows: Returns expanded form of "%HOMEDIR%" - getAppDataDir(): Posix: Returns expanded form of "~". Widnows: Returns expanded form of "%APPDATA%"