public static GitStrArrayIn BuildFrom(FilePath[] paths) { var nbOfPaths = paths.Length; var pathPtrs = new IntPtr[nbOfPaths]; for (int i = 0; i < nbOfPaths; i++) { var s = paths[i].Posix; pathPtrs[i] = FilePathMarshaler.FromManaged(s); } int dim = IntPtr.Size * nbOfPaths; IntPtr arrayPtr = Marshal.AllocHGlobal(dim); Marshal.Copy(pathPtrs, 0, arrayPtr, nbOfPaths); return(new GitStrArrayIn { strings = arrayPtr, size = (uint)nbOfPaths }); }
public static GitRepositoryInitOptions BuildFrom(FilePath workdirPath, bool isBare) { var opts = new GitRepositoryInitOptions { Flags = GitRepositoryInitFlags.GIT_REPOSITORY_INIT_MKPATH, Mode = 0 /* GIT_REPOSITORY_INIT_SHARED_UMASK */ }; if (workdirPath != null) { Debug.Assert(!isBare); opts.WorkDirPath = FilePathMarshaler.FromManaged(workdirPath); } if (isBare) { opts.Flags |= GitRepositoryInitFlags.GIT_REPOSITORY_INIT_BARE; } return(opts); }