Tilde expansion on Win32
I noticed that we don't expand tildes in Win32 because of the use of
tilde in short versions of long file names:
char *
expand_tilde(char **filename)
{
if (!filename || !(*filename))
return NULL;
/* MSDOS uses tilde for short versions of long file names, so skip it. */
#ifndef WIN32
/* try tilde expansion */
if (**filename == '~')
{
However, I thought the tilde was usually used toward the end of the file
name, not at the beginning. Is this true? Should this code be modified?
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Bruce Momjian wrote:
I noticed that we don't expand tildes in Win32 because of the use of
tilde in short versions of long file names:char *
expand_tilde(char **filename)
{
if (!filename || !(*filename))
return NULL;/* MSDOS uses tilde for short versions of long file names, so skip it. */
#ifndef WIN32/* try tilde expansion */
if (**filename == '~')
{However, I thought the tilde was usually used toward the end of the file
name, not at the beginning. Is this true? Should this code be modified?
If you talking about WIn32 ~ they are typically in the middle. Like:
program files === progra~1
Sincerely,
Joshua D. Drake
--
Your PostgreSQL solutions provider, Command Prompt, Inc.
24x7 support - 1.800.492.2240, programming, and consulting
Home of PostgreSQL Replicator, plPHP, plPerlNG and pgPHPToolkit
http://www.commandprompt.com / http://www.postgresql.org
-----Original Message-----
From: pgsql-hackers-owner@postgresql.org
[mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Bruce Momjian
Sent: 10 June 2005 15:31
To: PostgreSQL-development
Subject: [HACKERS] Tilde expansion on Win32I noticed that we don't expand tildes in Win32 because of the use of
tilde in short versions of long file names:char *
expand_tilde(char **filename)
{
if (!filename || !(*filename))
return NULL;/* MSDOS uses tilde for short versions of long file
names, so skip it. */
#ifndef WIN32/* try tilde expansion */
if (**filename == '~')
{However, I thought the tilde was usually used toward the end
of the file
name, not at the beginning. Is this true? Should this code
be modified?
Yes, it's true - long filenames may be shortened to something like
Long filename.document -> longfi~1.doc
To munge them into 8.3 format. Without looking at the code I assume that
it is expanding ~dpage into /home/dpage or whatever? If so, I'd be
inclined to leave it - tilde isn't used like that on Windows.
Regards, Dave
Import Notes
Resolved by subject fallback
Dave Page wrote:
-----Original Message-----
From: pgsql-hackers-owner@postgresql.org
[mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Bruce Momjian
Sent: 10 June 2005 15:31
To: PostgreSQL-development
Subject: [HACKERS] Tilde expansion on Win32I noticed that we don't expand tildes in Win32 because of the use of
tilde in short versions of long file names:char *
expand_tilde(char **filename)
{
if (!filename || !(*filename))
return NULL;/* MSDOS uses tilde for short versions of long file
names, so skip it. */
#ifndef WIN32/* try tilde expansion */
if (**filename == '~')
{However, I thought the tilde was usually used toward the end
of the file
name, not at the beginning. Is this true? Should this code
be modified?Yes, it's true - long filenames may be shortened to something like
Long filename.document -> longfi~1.doc
To munge them into 8.3 format. Without looking at the code I assume that
it is expanding ~dpage into /home/dpage or whatever? If so, I'd be
inclined to leave it - tilde isn't used like that on Windows.
OK, you d'man. I will leave it.
I know we can't support ~user/ on Win32, but I thought maybe we should
support ~/.
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073