Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3711013

Browse files
authored
fixfsharp#555 (#2950)
1 parent0e8b9d0 commit3711013

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

‎src/absil/ilwrite.fs‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3066,23 +3066,28 @@ let count f arr =
30663066
Array.fold(fun x y-> x+ f y)0x0 arr
30673067

30683068
moduleFileSystemUtilites=
3069+
openSystem
30693070
openSystem.Reflection
3071+
openSystem.Globalization
30703072
#if FX_RESHAPED_REFLECTION
30713073
openMicrosoft.FSharp.Core.ReflectionAdapters
30723074
#endif
30733075
letprogress=try System.Environment.GetEnvironmentVariable("FSharp_DebugSetFilePermissions")<>nullwith_->false
3074-
letsetExecutablePermission filename=
3076+
letsetExecutablePermission(filename:string)=
30753077

30763078
#if ENABLE_MONO_SUPPORT
30773079
if runningOnMonothen
30783080
try
30793081
letmonoPosix= Assembly.Load("Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756")
30803082
if progressthen eprintf"loading type Mono.Unix.UnixFileInfo...\n"
30813083
letmonoUnixFileInfo= monoPosix.GetType("Mono.Unix.UnixFileSystemInfo")
3082-
letfileEntry= monoUnixFileInfo.InvokeMember("GetFileSystemEntry",(BindingFlags.InvokeMethod||| BindingFlags.Static||| BindingFlags.Public),null,null,[| box filename|],System.Globalization.CultureInfo.InvariantCulture)
3083-
letprevPermissions= monoUnixFileInfo.InvokeMember("get_FileAccessPermissions",(BindingFlags.InvokeMethod||| BindingFlags.Instance||| BindingFlags.Public),null, fileEntry,[||],System.Globalization.CultureInfo.InvariantCulture)|> unbox<int>
3084+
letfileEntry= monoUnixFileInfo.InvokeMember("GetFileSystemEntry",(BindingFlags.InvokeMethod||| BindingFlags.Static||| BindingFlags.Public),null,null,[| box filename|],CultureInfo.InvariantCulture)
3085+
letprevPermissions= monoUnixFileInfo.InvokeMember("get_FileAccessPermissions",(BindingFlags.InvokeMethod||| BindingFlags.Instance||| BindingFlags.Public),null, fileEntry,[||],CultureInfo.InvariantCulture)
3086+
letprevPermissionsValue= prevPermissions|> unbox<int>
3087+
letnewPermissionsValue= prevPermissionsValue|||0x000001ED
3088+
letnewPermissions= Enum.ToObject(prevPermissions.GetType(), newPermissionsValue)
30843089
// Add 0x000001ED (UserReadWriteExecute, GroupReadExecute, OtherReadExecute) to the access permissions on Unix
3085-
monoUnixFileInfo.InvokeMember("set_FileAccessPermissions",(BindingFlags.InvokeMethod||| BindingFlags.Instance||| BindingFlags.Public),null, fileEntry,[|box(prevPermissions|||0x000001ED)|],System.Globalization.CultureInfo.InvariantCulture)|> ignore
3090+
monoUnixFileInfo.InvokeMember("set_FileAccessPermissions",(BindingFlags.InvokeMethod||| BindingFlags.Instance||| BindingFlags.Public),null, fileEntry,[|newPermissions|],CultureInfo.InvariantCulture)|> ignore
30863091
with e->
30873092
if progressthen eprintf"failure:%s...\n"(e.ToString())
30883093
// Fail silently

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp