@@ -15,31 +15,42 @@ static void printDisk(FFDiskOptions* options, const FFDisk* disk, uint32_t index
15
15
16
16
if (options -> moduleArgs .key .length == 0 )
17
17
{
18
- if (instance .config .display .pipe )
19
- ffStrbufAppendF (& key , "%s (%s)" , FF_DISK_MODULE_NAME , disk -> mountpoint .chars );
20
- else
18
+ ffStrbufSetF (& key , "%s (%s)" , FF_DISK_MODULE_NAME , disk -> mountpoint .chars );
19
+ }
20
+ else
21
+ {
22
+ FF_STRBUF_AUTO_DESTROY mountpointLink = ffStrbufCreate ();
23
+ FF_STRBUF_AUTO_DESTROY nameLink = ffStrbufCreate ();
24
+ #ifdef __linux__
25
+ if (getenv ("WSL_DISTRO_NAME" ) != NULL && getenv ("WT_SESSION" ) != NULL )
21
26
{
22
- #ifdef __linux__
23
- if (getenv ("WSL_DISTRO_NAME" ) != NULL && getenv ("WT_SESSION" ) != NULL )
27
+ if (ffStrbufEqualS (& disk -> filesystem , "9p" ) && ffStrbufStartsWithS (& disk -> mountpoint , "/mnt/" ))
24
28
{
25
- if (ffStrbufEqualS (& disk -> filesystem , "9p" ) && ffStrbufStartsWithS (& disk -> mountpoint , "/mnt/" ))
26
- ffStrbufAppendF (& key , "%s (\e]8;;file:///%c:/\e\\%s\e]8;;\e\\)" , FF_DISK_MODULE_NAME , disk -> mountpoint .chars [5 ], disk -> mountpoint .chars );
27
- else
28
- ffStrbufAppendF (& key , "%s (\e]8;;file:////wsl.localhost/%s%s\e\\%s\e]8;;\e\\)" , FF_DISK_MODULE_NAME , getenv ("WSL_DISTRO_NAME" ), disk -> mountpoint .chars , disk -> mountpoint .chars );
29
+ ffStrbufSetF (& mountpointLink , "\e]8;;file:///%c:/\e\\%s\e]8;;\e\\" , disk -> mountpoint .chars [5 ], disk -> mountpoint .chars );
30
+ ffStrbufSetF (& nameLink , "\e]8;;file:///%c:/\e\\%s\e]8;;\e\\" , disk -> mountpoint .chars [5 ], disk -> name .chars );
29
31
}
30
32
else
31
- #endif
32
- ffStrbufAppendF (& key , "%s (\e]8;;file://%s\e\\%s\e]8;;\e\\)" , FF_DISK_MODULE_NAME , disk -> mountpoint .chars , disk -> mountpoint .chars );
33
+ {
34
+ ffStrbufSetF (& mountpointLink , "\e]8;;file:////wsl.localhost/%s%s\e\\%s\e]8;;\e\\" , getenv ("WSL_DISTRO_NAME" ), disk -> mountpoint .chars , disk -> mountpoint .chars );
35
+ ffStrbufSetF (& nameLink , "\e]8;;file:////wsl.localhost/%s%s\e\\%s\e]8;;\e\\" , getenv ("WSL_DISTRO_NAME" ), disk -> mountpoint .chars , disk -> name .chars );
36
+ }
33
37
}
34
- }
35
- else
36
- {
38
+ else
39
+ #endif
40
+ {
41
+ ffStrbufSetF (& mountpointLink , "\e]8;;file://%s\e\\%s\e]8;;\e\\" , disk -> mountpoint .chars , disk -> mountpoint .chars );
42
+ ffStrbufSetF (& nameLink , "\e]8;;file://%s\e\\%s\e]8;;\e\\" , disk -> mountpoint .chars , disk -> name .chars );
43
+ }
44
+
37
45
FF_PARSE_FORMAT_STRING_CHECKED (& key , & options -> moduleArgs .key , ((FFformatarg []) {
38
46
FF_FORMAT_ARG (disk -> mountpoint , "mountpoint" ),
39
47
FF_FORMAT_ARG (disk -> name , "name" ),
40
48
FF_FORMAT_ARG (disk -> mountFrom , "mount-from" ),
41
49
FF_FORMAT_ARG (options -> moduleArgs .keyIcon , "icon" ),
42
50
FF_FORMAT_ARG (index , "index" ),
51
+ FF_FORMAT_ARG (disk -> filesystem , "filesystem" ),
52
+ FF_FORMAT_ARG (mountpointLink , "mountpoint-link" ),
53
+ FF_FORMAT_ARG (nameLink , "name-link" ),
43
54
}));
44
55
}
45
56
0 commit comments