Ben Dunbobbin
e6f5e4910d
[Windows][Support] Add helper to expand short 8.3 form paths ( #178480 )
...
Windows supports short 8.3 form filenames (for example,
`compile_commands.json` -> `COMPIL~1.JSO`) for legacy reasons. See:
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#short-vs-long-names
Such paths are not unusual because, on Windows, the system temporary
directory is commonly derived from the `TMP`/`TEMP` environment
variables. For historical compatibility reasons, these variables are
often set to short 8.3 form paths on systems where user names exceed
eight characters.
Introduce `windows::makeLongFormPath()` to convert paths to their long
form by expanding any 8.3 components via `GetLongPathNameW`.
As part of this change:
- Extended-length path prefix handling is centralized by adding
`stripExtendedPrefix()` and reusing it in `realPathFromHandle()`.
- `widenPath()` is cleaned up to use shared prefix constants.
This was split out from #178303 at the request of the codeowner so that
the Windows support parts can be reviewed separately.
2026-02-10 16:44:02 +00:00
..
2025-08-23 07:10:02 -07:00
2026-01-20 15:37:39 +01:00
2025-12-17 12:36:35 -05:00
2026-01-23 18:48:20 +00:00
2026-02-10 16:44:02 +00:00
2025-07-24 10:38:36 +01:00
2025-11-02 00:12:33 +00:00
2025-11-26 14:58:38 +01:00
2025-05-21 13:19:09 -07:00
2026-01-14 16:53:53 +01:00
2026-01-26 13:51:25 +00:00
2025-01-28 09:53:45 +00:00
2025-09-25 08:51:55 -07:00
2025-10-29 11:02:28 -04:00
2025-11-19 07:29:57 -08:00
2025-09-25 08:51:55 -07:00
2025-09-25 08:51:55 -07:00
2025-11-20 10:45:53 -05:00
2025-12-05 05:54:31 -08:00
2025-04-22 09:45:15 +01:00
2026-01-13 08:44:48 -08:00
2026-01-05 11:56:40 -08:00
2026-01-14 11:16:32 +01:00
2024-11-25 08:59:17 +08:00
2025-08-23 07:10:02 -07:00
2025-05-15 18:16:05 +02:00
2025-06-04 12:30:52 -07:00
2025-03-10 09:48:40 +00:00
2025-11-03 08:41:32 -08:00
2025-07-08 08:47:04 +02:00
2025-07-28 18:10:36 +02:00
2026-01-05 11:56:40 -08:00
2025-09-03 11:12:11 +02:00
2025-11-09 15:15:21 +00:00
2025-09-26 08:57:51 -07:00
2025-05-14 13:48:45 -07:00
2025-11-03 08:41:32 -08:00
2025-03-10 09:48:40 +00:00
2025-06-04 12:30:52 -07:00
2025-01-15 09:53:21 -08:00
2026-01-14 09:58:14 -08:00
2025-07-09 11:19:21 -07:00
2025-09-29 09:00:37 -07:00
2025-05-16 06:40:45 -07:00
2026-02-05 13:31:26 +00:00
2025-05-07 17:37:38 -07:00
2024-12-02 14:31:24 +01:00
2024-10-16 15:53:52 -07:00
2025-10-23 03:46:40 +00:00
2025-04-26 18:18:09 -07:00
2025-12-03 15:09:04 -08:00
2025-03-10 09:48:40 +00:00
2025-11-17 13:46:37 -05:00
2026-01-05 11:56:40 -08:00
2026-01-16 15:33:54 -08:00
2026-01-12 15:42:23 +00:00
2026-01-27 13:20:56 +00:00
2026-02-02 19:18:49 +00:00
2025-12-11 15:42:13 -08:00
2026-02-07 18:10:05 +01:00
2025-11-09 15:15:10 +00:00
2025-01-27 09:04:43 -08:00
2026-01-09 15:49:35 +00:00
2025-11-18 11:10:58 +00:00
2024-11-20 06:51:43 -08:00
2026-01-27 13:20:56 +00:00
2024-11-20 06:51:43 -08:00
2025-09-24 08:44:56 -07:00
2026-01-19 14:43:35 +00:00
2026-01-27 13:20:56 +00:00
2025-09-25 10:15:47 -07:00
2025-10-15 06:54:14 -07:00
2024-11-20 06:51:43 -08:00
2025-04-28 22:25:17 -07:00
2025-04-30 19:14:15 -07:00
2025-08-26 16:19:52 -07:00
2025-12-11 15:42:13 -08:00
2025-11-01 12:41:43 -07:00
2026-01-18 21:18:39 +01:00
2026-01-18 21:18:39 +01:00
2025-03-10 09:48:40 +00:00
2024-11-20 15:00:11 +00:00
2025-09-24 08:44:56 -07:00
2025-10-01 13:58:26 -07:00
2025-12-11 15:42:13 -08:00
2025-09-29 15:56:54 +02:00
2025-05-14 13:48:45 -07:00
2025-09-24 08:44:56 -07:00
2025-10-17 08:12:34 -07:00
2025-11-19 08:48:41 -08:00
2026-01-02 18:48:17 +01:00
2025-10-01 08:59:23 -07:00
2025-11-02 13:15:01 -08:00
2025-04-21 08:13:16 -07:00
2024-11-20 06:51:43 -08:00
2026-01-13 11:52:46 -05:00
2026-01-23 18:48:20 +00:00
2026-01-13 20:26:50 +00:00
2024-10-23 10:44:09 -07:00
2025-11-03 08:41:32 -08:00
2025-05-18 07:34:20 -07:00
2025-09-13 07:50:37 -07:00
2026-01-12 17:04:24 +00:00
2026-01-12 17:04:24 +00:00
2025-05-09 16:56:18 -07:00
2026-02-04 06:36:30 +00:00
2025-09-05 10:31:02 -07:00
2026-01-02 20:42:56 -08:00
2025-09-05 10:31:02 -07:00
2025-09-05 10:31:02 -07:00
2025-09-05 10:31:02 -07:00
2025-09-25 08:51:55 -07:00
2025-09-24 07:41:06 -07:00
2026-01-02 20:42:56 -08:00
2025-11-18 15:58:39 -05:00