--- cygpath.cc.orig 2006-07-30 16:15:30.390625000 +0300 +++ cygpath.cc 2006-07-30 16:15:05.953125000 +0300 @@ -241,15 +241,24 @@ get_long_name (const char *filename, DWO len = GetLongPathName (filename, buf, MAX_PATH); if (len == 0) { - if (GetLastError () == ERROR_INVALID_PARAMETER) + DWORD err = GetLastError (); + + if (err == ERROR_INVALID_PARAMETER) { fprintf (stderr, "%s: cannot create long name of %s\n", prog_name, - filename); + filename); exit (2); } - buf[0] = '\0'; - strncat (buf, filename, MAX_PATH - 1); - len = strlen (buf); + else if (err == ERROR_FILE_NOT_FOUND) + { + len = get_long_path_name_w32impl (filename, buf, MAX_PATH); + } + else + { + buf[0] = 0; + strncat (buf, filename, MAX_PATH - 1); + len = strlen (buf); + } } sbuf = (char *) malloc (len + 1); if (!sbuf)