Example #1
0
        internal static unsafe SvnPropertyValue Create(sbyte *propertyName, svn_string_t value, SvnTarget target, string name)
        {
            if (propertyName == null)
            {
                throw new ArgumentNullException(nameof(propertyName));
            }
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            object val = SvnBase.PtrToStringOrByteArray(value.data, (int)value.len);

            if (val is string strVal)
            {
                if (svn_props.svn_prop_needs_translation(propertyName))
                {
                    strVal = strVal.Replace("\n", Environment.NewLine);
                }

                return(new SvnPropertyValue(name, SvnBase.PtrToByteArray(value.data, (int)value.len), strVal, target));
            }

            return(new SvnPropertyValue(name, (byte[])val, target));
        }
Example #2
0
        internal static unsafe SvnPropertyValue Create(sbyte *propertyName, svn_string_t value, SvnTarget target)
        {
            if (propertyName == null)
            {
                throw new ArgumentNullException(nameof(propertyName));
            }

            string name = SvnBase.Utf8_PtrToString(propertyName);

            return(Create(propertyName, value, target, name));
        }
Example #3
0
        unsafe bool InternalSetProperty(string target, string propertyName, svn_string_t value, SvnSetPropertyArgs args, AprPool pool)
        {
            if (target == null)
            {
                throw new ArgumentNullException(nameof(target));
            }
            if (string.IsNullOrEmpty(propertyName))
            {
                throw new ArgumentNullException(nameof(propertyName));
            }
            if (string.IsNullOrEmpty(propertyName))
            {
                throw new ArgumentNullException(nameof(propertyName));
            }

            EnsureState(SvnContextState.ConfigLoaded); // We might need repository access
            using var store = new ArgsStore(this, args, pool);

            sbyte *pcPropertyName = pool.AllocString(propertyName);

            if (!svn_props.svn_prop_name_is_valid(pcPropertyName))
            {
                throw new ArgumentException(SharpSvnStrings.PropertyNameIsNotValid, nameof(propertyName));
            }

            svn_error_t r = svn_client.svn_client_propset_local(
                pcPropertyName,
                value,
                AllocDirentArray(NewSingleItemCollection(SvnTools.GetNormalizedFullPath(target)), pool),
                (svn_depth_t)args.Depth,
                args.SkipChecks,
                CreateChangeListsList(args.ChangeLists, pool), // Intersect ChangeLists
                CtxHandle,
                pool.Handle);

            return(args.HandleResult(this, r, target));
        }
Example #4
0
 private SvnString(svn_string_t *ptr)
 {
     mString = ptr;
 }